Unity

Unity - структура сцен

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

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



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

Соответственно, для реализации нам необходимо 5 сцен:

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

2. Главная сцена, которая содержит кнопки перехода на сцену с настройками и кнопку перехода на сцену со списком уровней.

3. Сцена с настройками (например, выбор языка, включение / отключение звуковых эффектов и музыки).

4. Сцена со списком уровней, нажатие на доступный уровень открывает сцену с игрой.

5. Сцена с игрой.



Здесь возникает вопрос, откуда взять данные для расстановки фигур на сцене с игрой?

Здесь существует два решения:

Первое - создавать для каждого уровня свою сцену и на каждой сцене настраивать расположение фигур, что в случае простых игр, как в данном примере, не целесообразно, при таком подходе не получится ограничиться 5ю сценами;

Второе - загружать данные уровня из файлов, т.е. если шахматная доска поделена на клетки мы знаем координаты каждой клетки, соответственно мы можем хранить все данные о расположении фигур на каждом уровне в текстовых файлах, например, в json формате.

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

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