Я использую AssetBundles в своей игре и хочу, чтобы пользователь мог очистить кеш AssetBundle на странице настроек. Я пытался использовать Caching.CleanCache, но он возвращает «false», потому что я использую кеш AssetBundle на странице настроек. Я пытался загрузить пустую сцену и очистить кеш, но это тоже не сработает. мне нужно перезапустить приложение? кто-нибудь знает какое-нибудь решение?
unity3d Caching.CleanCache не будет работать
Ответы (2)
позвольте мне ответить на мой вопрос. проведя некоторое исследование, я обнаружил, что в моей игре есть несколько незагруженных наборов ресурсов. Мне удалось удалить кеш после выгрузки всех пакетов активов.
Для меня вызова следующего было недостаточно:
AssetBundle.UnloadAllAssetBundles(false);
bool success = Caching.ClearCache();
У меня был пакет активов в кеше, который не был выгружен с помощью UnloadAllAssetBundles. Такая ситуация произошла с бандлом, для которого я до этого делал 2 немедленных запроса. Во второй раз загрузка пакета не удалась. Кэш стоял то в неконсистентном состоянии, то не смог выгрузиться. Итак, после того, как я решил проблему с двумя запросами, приведенный выше код работал нормально.
Проблема с двумя запросами для одного и того же пакета активов была решена путем ожидания второго запроса до завершения первого.
ve tried but Caching.Clean return false doesn
t вносит изменения в папку кеша, и caching.spaceOccupied показывает значительное количество байтов, но возвращает true, когда удаляет файлы кеша, а caching.spaceOccupied возвращает 0. - person Hassy31   schedule 14.11.2017