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

Метаданные об ассетах

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

Ассет IDs

Unity Editor часто проверяет содержимое папки Assets по списку ассетов, о которых ему уже известно. Когда вы помещаете ассет в папку Assets, Unity обнаруживает, что вы добавили новый файл, и присваивает уникальный ID ассету. Это ID, который Unity использует внутренне для ссылки на ассет, так что он может переместить или переименовать ассет, не нарушая ничего. Вы можете использовать окно Окно Import Activity для просмотра ID ассета.

Мета-файлы

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

Файлы .meta содержат уникальный ID, назначенный ассету, и значения для всех параметров импорта актива. Если вы измените параметры импорта для ассета, Unity сохранит эти новые параметры в файл .meta, который сопровождает ассет. Unity затем повторно импортирует ассет в соответствии с обновленными параметрами и обновляет соответствующие импортированные данные в папке Library проекта.

Перемещение и переименование ассетов

Мета-файлы содержат важную информацию о том, как ресурс используется в вашем проекте, и они должны оставаться в файле ресурса, к которому они относятся. Если вы перемещаете или переименовываете ресурс в окне Project, Unity автоматически перемещает или переименовывает соответствующий файл .meta. Однако, если вы перемещаете или переименовываете ресурс за пределами Unity, вы должны перемещать или переименовывать файл .meta, чтобы он соответствовал.

Если ассет теряет свой файл .meta, любая ссылка на этот ассет в вашем проекте нарушается. В этой ситуации Unity создает новый файл .meta для перемещенного или переименованного ассета, как если бы это был совершенно новый ассет, и удаляет старый файл .meta. Когда Unity удаляет старый файл .meta, это может вызвать серьезные проблемы, такие как следующие:

  • Если текстура теряет свой файл .meta, все материалы, использующие эту текстуру, теряют ссылку на эту текстуру. Чтобы исправить это, необходимо вручную переназначить эту текстуру всем материалам, требующим ее.
  • Если ассет скрипта теряет свой файл .meta, то все GameObjects или Префабы, которым назначен этот скрипт, имеют вместо этого неназначенный компонент скрипта и теряют свою функциональность. Чтобы исправить это, необходимо вручную переназначить этот скрипт любому GameObjects, который его требует.

Пустые папки и управление версиями

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

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

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