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 в собственном.