unity3d Caching.CleanCache не будет работать

Я использую AssetBundles в своей игре и хочу, чтобы пользователь мог очистить кеш AssetBundle на странице настроек. Я пытался использовать Caching.CleanCache, но он возвращает «false», потому что я использую кеш AssetBundle на странице настроек. Я пытался загрузить пустую сцену и очистить кеш, но это тоже не сработает. мне нужно перезапустить приложение? кто-нибудь знает какое-нибудь решение?


person Hassy31    schedule 13.11.2017    source источник
comment
Вы можете использовать Caching.expirationDelay, чтобы установить количество секунд, в течение которых AssetBundle может оставаться неиспользованным в кеше, прежде чем он будет автоматически удален.   -  person Arman Papikyan    schedule 13.11.2017
comment
Возврат false не обязательно означает, что он не работает. Если возврат Caching.Clean падает, возможно, кеш уже очищен или не используется.   -  person Tobias Theel    schedule 13.11.2017
comment
@Tobias Theel Ive tried but Caching.Clean return false doesnt вносит изменения в папку кеша, и caching.spaceOccupied показывает значительное количество байтов, но возвращает true, когда удаляет файлы кеша, а caching.spaceOccupied возвращает 0.   -  person Hassy31    schedule 14.11.2017
comment
Я обнаружил, что у меня есть несколько незагруженных пакетов активов. Поэтому я смог очистить кеш после выгрузки всех пакетов активов перед вызовом Caching.CleanCache. Спасибо   -  person Hassy31    schedule 14.11.2017


Ответы (2)


позвольте мне ответить на мой вопрос. проведя некоторое исследование, я обнаружил, что в моей игре есть несколько незагруженных наборов ресурсов. Мне удалось удалить кеш после выгрузки всех пакетов активов.

person Hassy31    schedule 14.11.2017

Для меня вызова следующего было недостаточно:

AssetBundle.UnloadAllAssetBundles(false);
bool success = Caching.ClearCache();

У меня был пакет активов в кеше, который не был выгружен с помощью UnloadAllAssetBundles. Такая ситуация произошла с бандлом, для которого я до этого делал 2 немедленных запроса. Во второй раз загрузка пакета не удалась. Кэш стоял то в неконсистентном состоянии, то не смог выгрузиться. Итак, после того, как я решил проблему с двумя запросами, приведенный выше код работал нормально.

Проблема с двумя запросами для одного и того же пакета активов была решена путем ожидания второго запроса до завершения первого.

person pavlko    schedule 10.05.2019