Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Сокращение времени загрузки с помощью AssetBundles

Поскольку все данные вашего объекта должны быть предварительно загружены до начала вашего контента, вам следует подумать о переносе ресурсов из ваших основных файлов данных в AssetBundles. Таким образом, вы можете создать небольшой загрузчик СценаСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Посмотрите в Словарь
свой контент, который быстро загружается. Затем он динамически загружает активы по запросу, когда пользователь просматривает ваш контент. AssetBundles также помогает управлять памятью данных активов: вы можете выгрузить данные активов из памяти для тех активов, которые вам больше не нужны, позвонив AssetBundle.Unload.

При использовании AssetBundles в WebGLAPI JavaScript, который отображает 2D- и 3D-графику в веб-браузере, необходимо учитывать следующие соображения. Вариант сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, использующих технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. Подробнее
См. на платформе Словарь
:

  • Если вы используете в AssetBundle типы классов, которые не используются в вашей основной сборке, Unity может удалить код этих классов из сборки. Это может привести к сбою при попытке загрузить активы из AssetBundle. Используйте BuildPlayerOptions.assetBundleManifestPath, чтобы исправить это, или см. раздел [Размер дистрибутива и удаление кода](webgl-distribution size-codestripping.md), ниже приведены другие варианты.

  • WebGL не поддерживает многопоточность, но загрузка по http становится доступной только после завершения загрузки. Из-за этого сборки Unity WebGL должны распаковывать данные AssetBundle в основном потоке, когда загрузка выполняется, блокируя основной поток. Чтобы избежать этого прерывания, сжатие LZMA AssetBundle недоступно для AssetBundles на WebGL. Вместо этого AssetBundles сжимаются с использованием LZ4, который очень эффективно распаковывается по запросу. Если вам нужно меньшее сжатиеМетод хранения данных, который уменьшает требуемый объем дискового пространства. См. Сжатие текстур, Сжатие анимации, Сжатие звука, Сжатие компоновки.
    Просмотрите в размерах Словарь
    , чем предоставляет LZ4, вы можете настроить свой веб-сервер для использования сжатие gzip или Brotli (поверх сжатия LZ4) в ваших AssetBundles. Дополнительную информацию о том, как это сделать, см. в документации по развертыванию сжатых сборок.

  • WebGL поддерживает кэширование AssetBundle с помощью UnityWebRequestAssetBundle.GetAssetBundle. Этот метод использует API IndexedDB из вашего браузера для хранения кеша на устройстве пользователя. Некоторые браузеры могут иметь ограниченную поддержку IndexedDB, и любые браузеры могут запрашивать у пользователя авторизацию для хранения данных на диске. Дополнительную информацию см. в разделе Совместимость браузера WebGL.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3