AssetBundle – это архивный файл, содержащий ресурсы, не связанные с кодом, для конкретной платформы (такие как модели, текстуры, префабы, аудиоклипы и даже целые сцены), которые Unity может загружать во время выполнения. AssetBundles может выражать зависимости
См. в Словарь между собой; например, Материал в одном AssetBundle может ссылаться на Текстуру в другом AssetBundle. Для эффективной доставки по сети вы можете сжимать AssetBundles с помощью встроенных алгоритмов на выбор в зависимости от требований варианта использования (LZMA и LZ4).
AssetBundles могут быть полезны для загружаемого контента (DLC), уменьшая размер начальной установки, загружая ресурсы, оптимизированные для платформы конечного пользователя, и уменьшая нагрузку на память во время выполнения.
Примечание. AssetBundle может содержать сериализованные данные экземпляра объекта кода, например ScriptableObject. Однако само определение класса компилируется в одну из сборок Project. Когда вы загружаете сериализованный объект в AssetBundle, Unity находит соответствующее определение класса, создает его экземпляр и устанавливает поля этого экземпляра, используя сериализованные значения. Это означает, что вы можете вводить новые элементы в свою игру в AssetBundle, если эти элементы не требуют каких-либо изменений в определениях ваших классов.
Что входит в AssetBundle?
"AssetBundle" может относиться к двум разным, но связанным вещам.
Во-первых, это фактический файл на диске. Это называется архивом AssetBundle. Архив AssetBundle представляет собой контейнер, похожий на папку, в котором хранятся дополнительные файлы. Эти дополнительные файлы бывают двух типов:
- Сериализованный файл, содержащий ваши активы, разбитые на отдельные объекты и записанные в этот единственный файл.
- Файлы ресурсов, представляющие собой фрагменты двоичных данных, хранящиеся отдельно для определенных ресурсов (текстуры и аудио), чтобы позволить Unity эффективно загружать их с диска в другом потоке.
«AssetBundle» также может относиться к фактическому объекту AssetBundle, с которым вы взаимодействуете через код для загрузки ресурсов из определенного архива AssetBundle. Этот объект содержит карту всех путей к файлам объектов, которые вы добавили в этот архив.
Дополнительную информацию см. в руководстве по активам, ресурсам и наборам ресурсов.
Примечание. AssetBundle Manager — это инструмент, который использовался в более ранних версиях Unity и помог упростить управление активами с помощью AssetBundle. Начиная с версии Unity 2018.2, вы должны использовать пакет Адресные активы. вместо этого, поскольку Unity объявила устаревшим AssetBundle Manager.