Введение в управление ассетами в режиме выполнения
То, как вы загружаете и управляете ресурсами в проекте, влияет на использование памяти приложения, время загрузки и размер сборки. Unity обеспечивает несколько систем управления ассетами, каждая из которых разработана для конкретных случаев использования и размеров проектов. Небольшие приложения с фиксированными размерами контента обычно могут использовать Unity’s стандартная система управления активами. Системы как AssetBundles и Addressables обеспечить лучшее управление для сложных планов ассетов, или приложений которые должны поток ассетов от удаленных серверов.
Влияние управления ассетами в режиме выполнения на сборки
По умолчанию Unity использует список Scene Перечень для определения сцен и ресурсов, которые должны быть включены в сборку, и порядка их загрузки. Unity включает в сборку только сцены из списка Scene List, а неиспользуемые сцены и ресурсы, не имеющие ссылки из этих сцен, исключаются из сборки. Вы также можете использовать SceneManager API для определения способа загрузки сцен в вашем проекте.
Исключением из этого является, если вы включаете любые сцены в Папка ресурсов, или обозначить их как Адресуемый, то Unity обрабатывает сцены по-разному.
Для определения содержимого, которое должно быть создано, Unity использует следующую информацию:
- Сцены, включенные в Scene Список.
- Любые Настройки, которые влияют на здание.
- Любые ассеты напрямую связаны с.
- Если вы используете Система ресурсов, Unity включает любые ассеты, находящиеся
Resourcesпапка. - Если вы используете AssetBundles, Unity включает любые ассеты и сцены, назначенные AssetBundle, плюс любые прямые ссылки из этих ассетов или сцен.
- При использовании AddressablesUnity включает все ассеты и сцены, назначенные адресуемой группе, плюс любые прямые ссылки на эти ассеты или сцены.
Параметры управления ассетами в режиме выполнения
Выбор правильного подхода зависит от таких факторов, как целевая платформа, требования к доставке контента и необходимость возможностей динамической загрузки. Доступны следующие системы управления:
| Система | Отдаленные/CDN доставка | Постепенные обновления | Автоматические зависимости | Динамическая загрузка/разгрузка | Лучше всего подходит для |
|---|---|---|---|---|---|
| Прямые ссылки | Нет | Нет | Да | Нет | Небольшие приложения с фиксированным контентом, встроенные в Player. |
| Система ресурсов | Нет | Нет | Да | Да (без разгрузки по каждому ассету) | Прототипы и небольшие проекты, требующие ассетов на весь срок службы приложения. |
| AssetBundle система | Да | Да | Нет (ручная) | Да (ручное управление памятью) | Существующие проекты, которые уже используют AssetBundles или требуют удаленных контейнеров контента с управлением на уровне скрипта. |
Вы можете дополнительно использовать следующие пакеты в зависимости от типа вашего проекта:
-
Пакет Addressables: предоставляет интерфейс редактора для распределения ассетов по сборкам контента. Построен поверх
AssetBundleAPI, он автоматизирует многие ручные процессы, которые имеет система AssetBundle. - ECS система управления содержанием: Если вы используете пакет Организации в вашем проекте, то у него есть собственная система управления содержанием.
Addressables пакет
Если вы хотите создать отдельные сборки контента через систему AssetBundles, то Addressables пакет предоставляет интерфейс редактора для распределения ассетов по сборкам контента. Addressables автоматически управляет зависимостями, расположением ассетов и выделением памяти — тем, что в системах AssetBundle приходится делать вручную. Пакет Addressables призван снять ограничения систем Resources и AssetBundle и упростить управление ассетами по требованию.
После того, как вы сделали ассет адресуемым, вы можете ссылаться на него по адресу в коде, что означает, что вы можете изменить местоположение ассета без необходимости переписывать код. Вы также можете использовать ссылки на ассет для динамической загрузки и выгрузки ассетов, так что вам не нужно всегда хранить все ассеты в сцене в памяти.
Система Addressables предназначена для приложений, которые могут обновлять содержимое со временем. Если ваше приложение имеет фиксированное содержимое, которое отправляется в первоначальную загрузку, то использование прямых ссылок или системы Ресурсов является лучшей альтернативой.
Для получения дополнительной информации см. Addressables обзор
ECS Система управления содержанием
Пакет Entities имеет свой собственный система управления контентом, где используются слабые ссылки на ресурсы для их загрузки во время выполнения. Также можно создавать архивы содержимого для доставки содержимого в приложение. Дополнительные сведения см. в разделе Введение в управление контентом.