Структура Unity проекта

Каждый раз, начиная новый проект, я создаю структуру папок и элементов, которая будет основой. Не важно, какого размера в итоге получится проект, но имея чёткую структуру с самого начала, с ним будет удобно работать, масштабировать, передавать другому разработчику. Такие вещи обсуждаются заранее на уровне команды. Если работаете соло, то порядок всё равно не помещает 😉 И будет легче перекидывать общие ресурсы между своими же проектами.

Можно гуглить «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 проекта до конца 😅

  1. Не стоит хранить внешние ассеты в какой-то своей специальной папке, например «External», это может добавить сложностей с обновлением. В некоторых ассетах встречаются скрипты в папке Editor в которых захардкожены пути, поэтому перемещать их на уровень глубже не рекомендую.

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

  3. Кроме того, можно выделять папки цветом или менять значок. Цветовое кодирование позволит быстрее находить нужные директории и файлы. Редактор не позволяет это делает, но есть куча расширений на гитхабе, гуглите unity folder icon color.

  4. Можно ещё отделять игровые скрипты от «неигровых». Если у вас много менюшек помимо самой игры: чаты, лидерборда, настройки, магазин и т.д., то можно сделать папки Game и Client, внутри которых повторять основную структуру проекта.

Всё придёт с опытом. В любом случае, такой «шаблон» удобнее и практичнее, чем куча файлов в корневой папке и раскиданные элементы по сцене.

Нет комментариев

    Ваш комментарий