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

Управление пакетами ресурсов во время выполнения

Unity предоставляет API для управления пакетами ресурсов во время выполнения. Они используют Google PlayCore API, что означает, что они имеют те же ограничения, что и PlayCore, и не могут управлять пакетами ресурсов время установки. Использование API PlayCore также означает, что вашему приложению требуется подключаемый модуль PlayCore. Если в вашем проекте есть пакеты ресурсов, либо пользовательские пакеты ресурсов, либо пакеты ресурсов, созданные Unity, Unity автоматически добавляет зависимостьPlayCore в контекст в диспетчере пакетов зависимость — это конкретная версия пакета (выраженная в форме имя_пакета@версия_пакета), которая требуется проекту или другому пакету для работы. Проекты и пакеты используют атрибут dependencies в своих манифестах для определения набора требуемых пакетов. Для проектов это считается прямой зависимостью; для пакетов это косвенные или транзитивные зависимости. Подробнее
См. в Словарь
манифест приложения.

Способ загрузки пакетов ресурсов и доступа к их ресурсам зависит от режима доставки пакетов ресурсов. Существует три режима доставки пакетов ресурсов:

  • время установки: Google Play автоматически загружает пакеты ресурсов время установки, когда устройство устанавливает приложение. Google Play считает эти пакеты ресурсов частью базового приложения, и конечный пользователь не может удалить их, не удалив все приложение. PlayCore API не обрабатывает пакеты ресурсов время установки, что означает, что вы не можете проверить статус, запросить загрузку или удалить пакеты активов во время установки. Вы также не можете получить прямой доступ к ресурсам внутри этих пакетов ресурсов, за исключением потоковых ресурсов в созданных Unity пакетах ресурсов время установки. Чтобы получить доступ к потоковым ресурсам, используйте Application.streamingAssetsPath, чтобы получить путь к расположению потоковых ресурсов, а затем используйте UnityWebRequest для доступа к ресурсам по этому пути. Если вы создаете собственный пакет ресурсов, вы не можете получить доступ к ресурсам внутри него с помощью стандартных файловых API. Вместо этого используйте Android AssetManager API.
  • fast-follow: Google Play автоматически начинает загружать пакеты ресурсов fast-follow после установки приложения. Однако возможно, что не все пакеты ресурсов fast-follow доступны при первом запуске приложения. Чтобы проверить статус и загрузить пакеты ресурсов fast-follow, см. раздел Загрузка пакетов ресурсов.
  • по запросу: Google Play не загружает автоматически пакеты ресурсов по запросу. Вы должны вручную запустить загрузку. Информацию о том, как это сделать, см. ниже.

Дополнительную информацию о режимах доставки см. в разделе режимы доставки. .

Загрузить пакеты ресурсов

Если ваше приложение использует пакеты ресурсов fast-follow или on-demand, устройство должно загрузить эти пакеты ресурсов до приложение может получить доступ к ресурсам внутри них. Чтобы проверить состояние пакетов ресурсов и загрузить их, если их нет на устройстве, вы должны сначала узнать название каждого пакета ресурсов. Чтобы получить имена пакетов ресурсов, созданных Unity, вызовите AndroidAssetPacks.GetCoreUnityAssetPackNames. Не существует API среды выполнения для получения имен пользовательских пакетов ресурсов, поэтому вы должны отслеживать их самостоятельно. Вы устанавливаете имя пользовательских пакетов активов во время сборки; это имя каталога.

После получения названий пакетов ресурсов, чтобы проверить статус каждого пакета ресурсов, вызовите AndroidAssetPacks.GetAssetPackStateAsync, передавая имя пакета активов. Это возвращает статус пакета ресурсов, который вы запрашиваете, и вы можете использовать результат, чтобы определить, нужно ли вам загружать пакет ресурсов. Если вы хотите быстро узнать статус каждого пакета ресурсов, созданного Unity, вы можете использовать AndroidAssetPacks.coreUnityAssetPacksDownloaded. Это полезно, потому что перед загрузкой любой сценыСцена содержит среды и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Посмотрите в Словарь
, кроме первого, или попробуйте получить доступ к другим ресурсам, которые Unity ручки.

Для каждого пакета ресурсов, который необходимо загрузить, вызовите AndroidAssetPacks.DownloadAssetPackAsync, передав имя пакета ресурсов. Во время загрузки пакета ресурсов следите за состоянием загрузки, поскольку загрузка может быть приостановлена ​​или не выполнена. Это можно сделать двумя способами:

  • Периодически проверяйте экземпляр DownloadAssetPackAsyncOperation, который возвращает AndroidAssetPacks.DownloadAssetPackAsync.
  • Используйте версию AndroidAssetPacks.DownloadAssetPackAsync, которая принимает обратный вызов в качестве второго параметра. Обратный вызов, который вы передаете, должен принимать AndroidAssetPackInfo в качестве параметра, который можно использовать для определения состояния загрузки.

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

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