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

Содержание базы данных об ассетах

База данных ассетов Unity отслеживает ассеты в вашем проекте, чтобы обеспечить синхронизацию исходного файла ассета и его импортированного аналога.

Источник ассетов и артефактов

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

У артефактов есть сериализуемое представление в виде класса C#, наследующего UnityEngine.Object, так что вы можете получить доступ к их свойствам и работать с ними в коде. Например, импортированные файлы PNG преобразуются в серийные экземпляры Texture класс, который наследуется от UnityEngine.Object. Это объект, к которому вы получаете доступ при взаимодействии с текстурой в коде.

Разница между исходным файлом ассета и артефактом для некоторых типов ассетов больше, чем для других. Некоторые типы файлов ассетов, созданных Unity, такие как .prefab, .scene, .assetи .mat, уже содержат сериализированные данные в их исходном файле, поэтому файл артефакта, созданный Unity, похож на исходный файл. Эти типы файлов читаемы человеком, если Asset Serialization Mode установлен на значение по умолчанию Форс текст, в то время как двоичные файлы, такие как текстуры или аудио, обычно не читаются.

Каждое имя файла артефакта представляет собой GUID без расширения. Unity разделяет эти файлы на подпапки, и каждая подпапка имеет имя, соответствующее первым двум символам имени файла артефакта. Эти файлы артефактов содержат двоичные данные и не предназначены для чтения человеком. Хотя полезно понимать, что эти файлы содержат данные, используемые базой данных ассетов, вам не нужно просматривать, редактировать или использовать эти файлы напрямую.

Файл метаданных, который Unity создаёт во время импорта и сохраняет рядом с исходным файлом ассета, содержит настройки импорта ассета и GUID, позволяющий Unity связать исходный файл ассета с артефактом в базе данных ассетов.

Вы можете просмотреть артефакты, созданные для ассетов в вашем проекте, в окне Окно Import Activity.

Структура базы данных об ассетах

База данных ассетов состоит из следующих файлов базы данных в папке Library:

  • Исходная база данных ассетов (Library\SourceAssetDB): Содержит мета-информацию о ваших исходных файлах ассетов, которую Unity использует для определения того, был ли файл изменён, и, следовательно, следует ли импортировать файлы повторно. Это включает в себя такие данные, как дата последнего изменения, хэш содержимого файла, GUIDs и другие мета-информации.
  • База данных артефактов (Library\ArtifactDB): Содержит информацию о результатах импорта каждого исходного ассета. Каждый артефакт содержит информацию о зависимости импорта, мета-информацию об артефакте и список файлов артефактов.

Примечание: Убедитесь, что эти файлы базы данных исключены из систем управления версиями.

Кэширование ассетов и зависимости

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

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

Дополнительные сведения о зависимостях ассета и процессе обновления см. в Обновление базы данных активов.

Если вы работаете в команде, копия Unity каждого члена команды выполняет процесс импорта при изменении ассета или зависимости, что может потребовать много времени. Unity предоставляет решение этой проблемы под названием Unity Accelerator. Дополнительные сведения см. в Кэширование активов.

Повторный импорт ассетов при смене платформы

Изменение активной целевой платформы на может привести к тому, что Unity будет повторно импортировать ваши ассеты. Это обычно происходит, когда способ импорта ассета различается между платформами, что часто бывает. Например, разные платформы имеют разные форматы текстур, поэтому текстуры импортируются по-разному для каждой платформы.

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

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

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