При интеграции доставки объектов игры Unity могут получать доступ к пакетам объектов с помощью Addressables или AssetBundles. Addressables – это более современное и рекомендуемое решение для доставки объектов в играх, созданных с помощью Unity 2019.4 или более поздней версии, а AssetBundles обеспечивает поддержку пакетов объектов в Unity 2017.4 и 2018.4.
Unity Addressables
В играх, созданных с помощью Unity 2019.4 или более поздней версии, для доставки наборов объектов на устройства Android следует использовать Addressables. В Unity есть Play Asset Delivery (PAD) API для работы с пакетами объектов Android с помощью Addressables. Дополнительную информацию об использовании Addressables можно найти в следующих источниках:
- Пакет Addressables for Android
- Руководство по Play Asset Delivery для Unity
- Справочная документация по PAD API для Unity.
Как использовать файлы AssetBundle
Игры, созданные с помощью Unity 2017.4 и 2018.4, могут использовать файлы AssetBundle для доставки объектов на устройства Android. Файлы AssetBundle в Unity содержат сериализованные объекты, которые могут загружаться движком Unity во время работы приложения. Эти файлы предназначены для определенных платформ (например, Android) и могут использоваться в сочетании с пакетами объектов. Чаще всего один файл AssetBundle упаковывается в один пакет объектов с тем же названием, что и у AssetBundle. Если вам нужно больше возможностей для создания пакета объектов, настройте его с помощью API.
Чтобы получить набор AssetBundle, упакованный в пакет объектов, во время выполнения используйте класс Play Asset Delivery для Unity.
Требования
- Настройте среду разработки:
OpenUPM-CLI
Если у вас установлен OpenUPM CLI, вы можете установить реестр OpenUPM с помощью следующей команды:
openupm add com.google.play.assetdeliveryOpenUPM
Откройте настройки менеджера пакетов, выбрав в меню Unity Edit (Редактировать) > Project Settings (Настройки проекта) > Package Manager (Менеджер пакетов).
Добавьте OpenUPM в качестве реестра с ограниченной областью действия в окне Package Manager (Менеджер пакетов):
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.assetdelivery com.google.android.appbundleОткройте меню менеджера пакетов, выбрав в меню Unity Window (Окно) > Package Manager (Менеджер пакетов).
В раскрывающемся списке "Область действия менеджера" выберите Мои реестры.
Выберите пакет Google Play Integrity plugin for Unity из списка и нажмите Install (Установить).
Импортировать из GitHub
Скачайте последнюю версию
.unitypackageс сайта GitHub.Импортируйте файл
.unitypackage, выбрав в меню Unity Assets (Объекты) > Import package (Импортировать пакет) > Custom Package (Пользовательский пакет), и импортируйте все элементы.
Как настроить AssetBundles в интерфейсе
Настройте каждый AssetBundle в пакете объектов:
- Выберите Google > Android App Bundle > Asset Delivery Settings (Google > Набор Android App Bundle > Настройки доставки наборов объектов).
- Чтобы выбрать папки, в которых непосредственно содержатся файлы AssetBundle, нажмите Добавить папку.
Для каждого набора измените Режим доставки на При установке, Быстрое скачивание или По запросу. Устраните ошибки или зависимости и закройте окно.
Чтобы создать набор, выберите Google > Build Android App Bundle (Google > Создать набор Android App Bundle).
При необходимости настройте поддержку разных форматов сжатия текстур в наборе App Bundle.
Как настроить пакеты объектов с помощью API
Вы можете настроить доставку наборов объектов с помощью скриптов редактора, которые можно запускать в рамках автоматизированной системы сборки.
Используйте класс AssetPackConfig, чтобы указать, какие объекты нужно включить в сборку набора Android App Bundle, а также режим их доставки. В этих пакетах объектов не обязательно должен быть AssetBundle.
public void ConfigureAssetPacks {
// Creates an AssetPackConfig with a single asset pack, named
// examplePackName, containing all the files in path/to/exampleFolder.
var assetPackConfig = new AssetPackConfig();
assetPackConfig.AddAssetsFolder("examplePackName",
"path/to/exampleFolder",
AssetPackDeliveryMode.OnDemand);
// Configures the build system to use the newly created assetPackConfig when
// calling Google > Build and Run or Google > Build Android App Bundle.
AssetPackConfigSerializer.SaveConfig(assetPackConfig);
// Alternatively, use BundleTool.BuildBundle to build an App Bundle from script.
BuildBundle(new buildPlayerOptions(), assetPackConfig);
}
Вы также можете использовать статический метод BuildBundle в классе Bundletool, чтобы создать набор Android App Bundle с пакетами объектов, используя BuildPlayerOptions и AssetPackConfig.
Подробные инструкции вы найдете в практической работе по использованию Play Asset Delivery в играх Unity.
Интеграция с Play Asset Delivery Unity API
Play Asset Delivery Unity API позволяет запрашивать пакеты объектов, управлять скачиваниями и получать доступ к объектам. Сначала добавьте плагин Unity в проект.
Функции, которые вы используете в API, зависят от того, как вы создали пакеты объектов.
Если вы создали пакеты объектов с помощью интерфейса плагина, выберите Plugin-configured asset packs (Пакеты объектов, настроенные с помощью плагина).
Если вы создали пакеты объектов с помощью API или интерфейса плагина, выберите Пакеты объектов, настроенные с помощью API.
Дальнейшие действия
Протестируйте доставку наборов объектов локально и из Google Play.