Каждый раз, начиная новый проект, я создаю структуру папок и элементов, которая будет основой. Не важно, какого размера в итоге получится проект, но имея чёткую структуру с самого начала, с ним будет удобно работать, масштабировать, передавать другому разработчику. Такие вещи обсуждаются заранее на уровне команды. Если работаете соло, то порядок всё равно не помещает 😉 И будет легче перекидывать общие ресурсы между своими же проектами.
Можно гуглить «best practices» и смотреть как делают другие, но всё равно вы придёте к своему комфортному расположению ресурсов и элементов на сцене, а также их именованию. У Unity есть даже статья по этому поводу. Для тех кто ещё не определился с выбором, предлагаю свой вариант.
Обратите внимание на специальные папки зарезервированные в Unity.
Ниже примерная структура папок проекта:
Assets/
├── Editor
├── Audio/
│ ├── Music
│ └── FX
├── Plugins/
│ ├── iOS
│ └── Android
├── Images/
│ ├── Textures
│ ├── Atlases
│ ├── Icons
│ └── Backgrounds
├── Animations
├── Models
├── Prefabs
├── Scenes
├── Scripts
├── Fonts
├── Shaders
├── Resources/
│ └── ...
└── Other
В папке Resources вложенность структуры можно повторять, например, если вы динамически грузите картинки, звуки или эффекты, то имеет смысл не класть всё на один уровень в папку.
Не забывайте: всё что лежит в папках Resources попадёт в билд!
Дальше могут быть очевидные вещи, но как оказалось, они очевидные для тех кто сделал 1-3 проекта до конца 😅
-
Не стоит хранить внешние ассеты в какой-то своей специальной папке, например «External», это может добавить сложностей с обновлением. В некоторых ассетах встречаются скрипты в папке Editor в которых захардкожены пути, поэтому перемещать их на уровень глубже не рекомендую.
-
Также, если у вас есть код, библиотека, набор файлов которые не зависят от проекта и копируются каждый раз из одного проекта в другой — имеет смысл сделать свой Unity пакет и подключать по ссылке.
-
Кроме того, можно выделять папки цветом или менять значок. Цветовое кодирование позволит быстрее находить нужные директории и файлы. Редактор не позволяет это делает, но есть куча расширений на гитхабе, гуглите
unity folder icon color. -
Можно ещё отделять игровые скрипты от «неигровых». Если у вас много менюшек помимо самой игры: чаты, лидерборда, настройки, магазин и т.д., то можно сделать папки Game и Client, внутри которых повторять основную структуру проекта.
Всё придёт с опытом. В любом случае, такой «шаблон» удобнее и практичнее, чем куча файлов в корневой папке и раскиданные элементы по сцене.
Нет комментариев