retro3fretro3f blog

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

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

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

Можно гуглить «best practices» и смотреть как делают другие, но все равно вы придёте к своему комфортному расположению ресурсов и элементов на сцене. А для тех, кто еще не определился с выбором, предлагаю свой вариант.

И так, структура папок:

├── Assets
├── Editor
├── Fonts
├── Materials
├── Media
│   ├── Audio
│   │   ├── Music
│   │   └── SFX
│   └── Video
├── Plugins
│   ├── Android
│   ├── iOS
│   ├── Linux
│   └── Etc
├── Prefabs
├── Resources
│   ├── Prefabs
│   ├── Sprites
│   └── Etc
├── Scenes
│   ├── Levels
│   ├── Menu
│   └── Etc
├── Scripts
├── Shaders
└── Textures
    ├── UI
    ├── Sprites
    └── Etc

Естественно, все нужно подстраивать под конкретную задачу и под команду, но будет лучше если придерживаться общей концепции для всех своих проектов.

Структура сцены:

├── Plugins
├── Scripts
├── Level
├── UI
├── Render
│   ├── Cameras
│   ├── Effects
│   └── Lights
├── World
└── Dynamic

Scripts служит для скриптов которые не связаны с объектами, например, менеджер звуков. Plugins нужен если обрабатываете входящие сообщения из плагинов iOS и Android. В Dynamic добавляются динамические, временные элементы созданные в процессе игры. Если вы делаете 2D игру, то в Level разумно было бы добавить разбивку по «слоям»: background, middleground, foreground.

Пробуйте, создавайте! Все придет с опытом. В любом случае, такой шаблон удобнее и практичнее, чем куча файлов в корневой папке и раскиданные элементы по сцене :)