Где в проекте Unity связывает имена образов с их исходными файлами? - PullRequest
0 голосов
/ 08 февраля 2019

Я смотрю на исходный код проекта Unity, над которым я только начал сотрудничать.Я не могу найти, где в проекте Unity ассоциирует имя файла с объектом Image, указанным в скриптах C #.(Я совершенно новичок в Unity)

Игра работает нормально, поэтому я знаю, что Unity может загружать изображения, и в сценариях C # есть несколько мест, которые ссылаются на конкретные изображения, но я могу 'в сценариях нет места, определяющего, из какого файла загружается Image (что-то вроде public Image sprite1 = loadImage("art.png");).

Эти спрайты были импортированы через редактор Unity, поэтому я не уверен, связан ли Unityэти изображения с именами файлов где-то в самом проекте, в каком-то нечитаемом человеком файле или в программных файлах Unity (т. е. вне контроля версий).

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

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Unity ссылается на изображения с помощью GUID, который назначается импортируемому файлу при импорте и сохраняется в невидимом файле .meta.До тех пор, пока вы изменяете как имя файла изображения, так и соответствующее ему имя файла .meta и сохраняете GUID, Unity будет сохранять ссылку, независимо от фактического имени файла (если вы сохраняете GUID).

Важный ответзаключается в том, что вы никогда не должны терять свои файлы .meta (убедитесь, что они отслеживаются вашим контролем версий), как если бы вы это сделали, Unity создаст новый случайный GUID для этого файла, и отношения никогда не будут восстановлены обратно, что может бытьдовольно катастрофично для проекта.

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

0 голосов
/ 08 февраля 2019

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

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

Некоторые дополнительныеСправочная информация о том, как это работает: (вам не нужно это знать, но это удобно)

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

Плагины Unity для обработки контроля версий в единстве должны автоматически проверять файлы, которые изменяют эти ссылки, как правило, это довольно надежно.Выполнение чего-либо столь же простого, как переименование или перемещение файла, сохранит внутреннюю направляющую, поэтому это абсолютно безопасно (просто не забудьте переименовать и переместить файлы внутри редактора Unity! Вы можете перемещать файлы извне, просто убедитесь, что вы нене потеряете файл .meta)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...