Unity 6.3
0 онлайн 106 гостей 3 в системе
Вход
Ассеты и медиа Шаг 95 из 148

AssetBundle соображения платформы

AssetBundles специфичны для платформы, то есть во время выполнения можно загрузить только AssetBundles, созданный для целевой платформы. Это происходит потому, что AssetBundles содержит платформенно-специфические форматы ассетов, что приводит к неожиданному поведению при загрузке на других платформах. Это ограничение предотвращает случайную доставку неправильного контента на неправильную платформу.

Android спецификации

Для распространения контента AssetBundle для платформы Android у вас есть следующие варианты:

  • Строительство AssetBundles в StreamingAssets папка.
  • Пакет AssetBundles в пользовательские пакеты ресурсов.
  • Разверните AssetBundles через CDN.

Выбранный вами вариант зависит от требований вашего проекта.

Вставьте AssetBundles в папку StreamingAssets

AssetBundles размещены в StreamingAssets папка автоматически упаковываются как часть вашего приложения APK или OBB файл.

Вы не можете загрузить эти файлы непосредственно из файла APK или OBB со стандартным файловым путем APIs. Вместо этого вы должны загрузить их с UnityWebRequestAssetBundle API со схемой file:/// URL. Например:

var assetBundlePath = "file://" + Application.streamingAssetsPath + "/" + assetbundleToLoad;
var loadOp = UnityWebRequestAssetBundle.GetAssetBundle(assetBundlePath);
yield return loadOp.SendWebRequest();
var assetBundle = DownloadHandlerAssetBundle.GetContent(loadOp);

Избегайте использования сжатия LZMA для AssetBundles в папке StreamingAssets, потому что это неэффективно для декомпрессии LZMA файлов в файл временной памяти. Используйте сжатие LZ4 или оставьте их несжатыми. Для получения дополнительной информации, см. AssetBundles формат сжатия.

Пакет AssetBundles в пользовательские пакеты ресурсов

Вы можете поместить AssetBundles в формат пакета ассетов Android и доставить их в Магазин Google Play. Дополнительную информацию см. в разделе Пакеты ассетов в Unity.

Разверните AssetBundles через CDN

Вы можете разместить AssetBundles на веб-сервере и загрузить их по мере необходимости с UnityWebRequestAssetBundle.

Для упрощения развёртывания можно использовать сервис Unity Cloud Content Delivery (CCD), особенно вместе с Addressables. Такой подход подходит приложениям с большим объёмом динамического содержимого. Загруженные AssetBundle обычно сохраняются в каталоге кеша приложения или в Application.persistentDataPath.

Загрузки консоли и CRC

Как правило, AssetBundles для консолей не загружаются непосредственно из Интернета с помощью игрового кода. Вместо этого они обычно предоставляются через механизмы платформы DLC (Downloadable Content). Эти DLCs безопасно приобретаются, загружаются и хранятся локально системой платформы, вне прямого контроля игры. После установки игра может обнаружить и загрузить эти новые файлы.

При загрузке AssetBundle на консольных платформах, не выполнять CRC. Консоли часто имеют слабые CPUs которые могут потребовать значительного времени для подтверждения CRC для вновь открытого AssetBundle. Даже на платформах с быстрым хранением, CPU- связанный CRC проверка может заметно замедлить загрузку.

Дополнительные ресурсы