Unity "Пример иерархии объектов небольшой игры"

Многие начинающие unity разработчики задаются одним и тем же вопросом. «Как можно сделать удобную иерархию объектов игры на unity? »

Данный пример подойдет для небольших игр. Для средних и больших проектов потребуется другой подход.

Начнем с разбора иерархии объектов на сцене. В корне сцены лучше создавать пустые объекты для группировки.

Unity "Пример иерархии объектов небольшой игры"

«interface» содержит все связанное с интерфейсами. Холсты, панели, виджеты, камеры для отображения интерфейсов и прочее.

Unity "Пример иерархии объектов небольшой игры"

«GAME«содержит все объекты, которые есть на сцене. Объекты, связанные с окружением, помещаются в "Enviroment". Объекты, которые двигаются (игрок, npc, боты) помещаются в "Humanoids". Если в игре присутствуют спавны, создайте общий объект »Spawns».

Unity "Пример иерархии объектов небольшой игры"

«Other» содержит объекты, которые не относятся к каким то категориям. Если в other появляется много объектов, которые можно объединить, тогда создается пустой объект для группировки. И эти объекты переносятся туда

Unity "Пример иерархии объектов небольшой игры"

«Plugins» содержит объекты, связанные с плагинами. Такими как: реклама, метрики, монетизация и прочее.

Unity "Пример иерархии объектов небольшой игры"

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

Со структурой иерархии объектов на сцене разобрались. Теперь посмотрим на структуру ассетов игры.

В папке Assets создаются общие папки. Например папки: game, garbage, plugins. Папка garbage нужна для ассетов, которые вроде бы не нужны, но пока остаются на всякий случай. При скачивании каких то ассетов, они тоже автоматический попадают в папку Assets.

Unity "Пример иерархии объектов небольшой игры"

В папке «Game» создаются папки для: анимации, аудио, скриптов, спрайтов итд.

Unity "Пример иерархии объектов небольшой игры"

Далее, в этих папках может идти еще какое то подразделение. Например спрайты могут разделятся на icons, backgrounds, persons, ui. Или скрипты могут подразделятся на ui, plugins, unity editor итд.

Unity "Пример иерархии объектов небольшой игры"

Итог

Так как, ассеты подразумевают повторное использование, то распределять их на папки (сцена1 сцена2) плохая идея. В результате создаются дубли ассетов. Например спрайт одной и той же кнопки будет повторяться, что усложняет правки проекта и сам проект в целом.

Что касается создаваемых объектов в самой игре. Их тоже лучше помещать в один объект. Например DontDestroyOnLoad. Или создать для каждого типа создаваемого объекта свой объект для группировки.

1616
15 комментариев

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

9
Ответить

Вы правы, уже поправил статью

2
Ответить

Комментарий недоступен

1
Ответить

Комментарий недоступен

1
Ответить

Нужно более подробно расказвтаь о нейминге, оно же 'соглашения об именах' и более подробно расписать пример сортировки разных ассетов по папачкам.
Ясен фиг что у каждого разработчика /студии имена и нейминге свои, поэтому ужно аккура но расписывать что зачем и почему.
Хотя вон в том же анрил : пример рекомпндованного неймтнга буквально в документации приводится. И большинство ему следуют.

1
Ответить

Комментарий недоступен

Ответить

Первое впечатление, когда устроился на работу, как сейчас помню - это какие огромные сцены, в плане количества объектов, там были, в сравнении с моими домашними тогдашними проектами :)

1
Ответить