Unity 6.3
0 онлайн 67 гостей 3 в системе
Вход

AssetBundle.Unload

Declaration

public void Unload(bool unloadAllLoadedObjects);

Параметры

Параметр Описание
unloadAllLoadedObjects Определяет, будут ли также разгружены текущие экземпляры объектов, загруженных из AssetBundle.

Описание

Разгружает AssetBundle, освобождая его данные.

Когда unloadAllLoadedObjects имеет значение false, структуры данных отслеживания и любые буферы памяти, содержащие содержимое AssetBundle, высвобождаются, но любые экземпляры объектов, загруженных из пакета, остаются нетронутыми.

Когда unloadAllLoadedObjects имеет значение true, все объекты, загруженные из пакета, уничтожаются. Если любой GameObjects в Scene ссылается на уничтоженные ассеты, эти ссылки отсутствуют.

В любом случае больше объектов нельзя загрузить из пакета, если он не будет перезагружен.

Например, если Материал M загружается из AssetBundle AB:

  • AB.Unload(true) уничтожает все экземпляры M, указанные в активной сцене.
  • AB.Unload(false) сохраняет экземпляры M в памяти, но отделяет их от AB, вызывая дубликаты при перезагрузке AB.

Предупреждение: Разгрузка AssetBundle, который служит в качестве зависимости для других пакетов ассетов, все еще используемых, может привести к неопределенному поведению. Это включает ошибки серийного кодирования, которые могут возникнуть даже при последующей перезагрузке зависимости AssetBundle. Чтобы избежать таких проблем, убедитесь, что AssetBundle и все AssetBundles, которые зависят от него, разгружаются вместе.

Дополнительные сведения о различных используемых форматах сжатия и их влиянии на память во время загрузки см. в AssetBundle форматах сжатия.

Дополнительные ресурсы: UnloadAllAssetBundles, UnloadAsync, Использование AssetBundles в собственном.