Unity 6.3
0 онлайн 25 гостей 3 в системе
Вход

Вывод контента сборки

При создании сборки проекта Unity папка Data (или эквивалентная папка на целевой платформе) содержит серийные файлы, которые составляют содержимое приложения. Основные файлы в папке сборки Data, связанные с загрузкой ассетов, являются следующими:

  • globalgamemanager: Содержит данные движка, глобальные настройки проекта (например, Настройки качества, Настройки графики, Настройки физики, Метки и Слои).
  • globalgamemanager.assets: Содержит ассеты, на которые делается ссылка из файла globalgamemanager. Это может включать ScriptableObjects, например, настройки HDRP или URP, и другие ассеты, на которые делается ссылка из этих настроек.
  • resources.assets: Содержит все ассеты, расположенные в любой папке с именем Resources в вашем проекте. Эти ассеты всегда включены в сборку, независимо от того, прямо ли на них ссылается любая сцена, и могут быть загружены с Resources.Load.
  • level файлы, к которым добавлено число, например, level0, level1: Каждый level файл соответствует Scene списку в профилях сборкив порядке их появления. Эти файлы содержат GameObjects и компоненты, специфичные для этой сцены.
  • Файлы sharedassets с добавлением номера, например, sharedassets0, sharedassets1: Эти файлы содержат ассеты, на которые ссылается ссылка на сцену. Их нумерация соответствует сцене в порядке создания сцены, которая ссылается на них в первую очередь.
  • Resources/unity_builtin_extra : Содержит встроенные шейдеры, если на них ссылается сборка.
  • Resources/unity default resources: Содержит встроенные ресурсы, которые всегда включаются в сборку, такие как стандартные материалы и шрифты. Этот файл предварительно компилируется для каждой целевой платформы и распространяется как часть установки Unity Editor. Unity копирует файл в вывод как часть процесса сборки.

Важная: Точный макет и форматы файлов, которые Unity использования могут меняться между версиями, так что не пишите код, который зависит от конкретной конвенции именования для выходных файлов.

Двоичные данные

Каждый серийный файл в сборке может сопровождаться файлом .resS, который содержит текстуру или данные сетки. Например, level0 может сопровождаться level0.resS и sharedassets0 может сопровождаться sharedassets0.assets.resS.`

Аналогичным образом, любой серийнизированный файл, содержащий объекты AudioClip или VideoClip, будет сопровождаться файлом .resource, содержащим двоичные данные для этих объектов. Например, level0.resource или sharedassets1.resource.

Unity хранит двоичные данные в отдельных файлах, чтобы уменьшить использование памяти при загрузке ассетов во время выполнения и помочь в эффективной передаче GPU для определенных типов данных.

Совместное группирование ассетов

Порядок сцен в списке Scene Перечень в вашем проекте определяет, каким образом Unity собирает вместе общие ресурсы следующим образом:

  1. Unity обрабатывает сцены в точном порядке, указанном в File > Build Profiles > Scene List.
  2. Unity сохраняет каждый объект в файле сцены в соответствующем файле level, если только это не объект, который удален (например, компонент только для редактора).
  3. Для каждой ссылки от объекта сцены к объекту в ассете, Unity использует граф прямой ссылки, чтобы вытащить все необходимые объекты в сборку. Если обнаруженный объект не назначен файлу sharedasset, то он назначается файлу sharedasset, соответствующему сцене, которая в настоящее время обрабатывается. Например, level2 заполняет sharedassets2, но он также может ссылаться на объекты в sharedassets0, sharedassets1, globalgamemanagers.assets, resources.assetsи unity_default_resources.

Этот алгоритм обеспечивает, что объекты создаются только один раз, а не дублируют ассеты в нескольких сценах. Он приоритизирует эффективность первых сцен в списке сцен в ущерб более поздним сценам. Например, level0 имеет наименьшее количество ссылок на другие файлы и может ссылаться только на sharedassets0, globalgamemanagers.assetsи unity_default_resources. В отличие от этого, level99 может ссылаться на объекты, распределенные по 100 sharedasset файлам, globalgamemanagers.assets, resources.assetsи unity_default_resource.

Алгоритм дает особое предпочтение первой сцене, потому что это первая, которая загружается при запуске приложения.

Настройки сжатия данных игрока

Вы можете по желанию сжать данные Player в LZ4 ArchiveFile, указав BuildOptions.CompressWithLz4. Это тот же формат файла, который Unity использует для архивирования AssetBundles.

Сжатый файл для сборок Player всегда называется data.unity3d и содержит глобальные файлы с серийными номерами менеджеров игр (globalgamemanagers), сцен (level и sharedassets файлы), ресурсов (resources.assets) и шейдеров (Resources/unity_builtin_extra).

Он не содержит Resources/unity default resources, потому что сборка контента не генерирует этот файл.

Он также не содержит никаких файлов .resource, которые содержат видео- и аудиоконтент, оставленный за пределами файла data.unity3d.

AssetBundle вывод контента

Если вы используете AssetBundles для построения содержимого, то способ назначения объектов файлам Unity и правила именования файлов отличаются. Для получения дополнительной информации см. Результат сборки AssetBundle.

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