Найти в Дзене
Another Art

Работа со сценами и игровыми объектами в Unity

Оглавление

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

Пример игры, которую можно сделать в Unity
Пример игры, которую можно сделать в Unity

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

Сцены.

Сцены содержат в себе меню и игровое окружение вашей игры. Они состоят из игровых объектов, о которых мы поговорим ниже. Думайте о каждой новой сцене как о новом уровне в своей игре. В каждой сцене вы размещаете окружение, украшения, препятствия, меню и прочее-прочее, по сути собирая свою игру по кусочкам (уровням).

Только что созданная и открытая сцена
Только что созданная и открытая сцена

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

Для того чтобы сохранить сцену необходимо либо в контекстном меню выбрать File/Save Scene, либо сочетанием клавиш Ctrl+S (Windows) и Cmd+S (Mac). Unity сохраняет ваши сцены как ассеты в папке Assets по умолчанию, но я рекомендую сделать внутри папки Assets отдельную папку для сцен и хранить их там. Это также значит, что ваши сцены вы можете увидеть в окне проекта, как и любой другой ресурс игры.

Вот так выглядит сохраненная сцена в окне проекта
Вот так выглядит сохраненная сцена в окне проекта

Открыть сцену можно двойным нажатием левой кнопки мыши в окне проекта по ранее сохраненному файлу сцены. Если при этом вы забыли сохранить текущую сцену – Unity спросит вас стоит ли это сделать перед ее закрытием.

Игровые объекты.

Игровой объект – это наиболее важная концепция в Unity. Любой объект в вашей игре будь то персонаж, свет, камера или визуальный эффект — это все игровые объекты. Но сам по себе игровой объект из себя ничего не представляет, ему нужно придать свойства чтобы он стал чем-то большим.

Примеры игровых объектов в Unity
Примеры игровых объектов в Unity

Чтобы наш игровой объект стал деревом, светом или врагом – необходимо придать ему свойства. Свойства мы придаем компонентами (в прошлой статье я уже касался этой темы и объяснял, что такое компонент в Unity). В зависимости от того, какой игровой объект вы хотите создать, вы добавляете необходимые для этого компоненты. Можно также представить игровой объект как пустую кастрюлю, а компоненты ингредиентами, составляющими рецепт вашей игры. Unity имеет большое количество готовых компонентов, а также есть возможность создавать свои с помощью написания пользовательских скриптов (это очень обширная тема которую я еще затрону в будущих статьях).

Кнопка Add Component позволяет добавить компонент игровому объекту
Кнопка Add Component позволяет добавить компонент игровому объекту

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

Компоненты можно добавлять, удалять или изменять на игровом объекте. Для того чтобы добавить игровому объекту компонент, выберите его и нажмите на кнопку Add Component, в появившемся выпадающем меню выберите необходимый компонент и добавьте его. Чтобы удалить компонент с игрового объекта нажмите в окне инспектора на его название правой кнопкой мыши, появится контекстное меню, в котором необходимо выбрать пункт Remove Component.

Контекстное меню, выпадающие при нажатии правой кнопки на заголовок компонента
Контекстное меню, выпадающие при нажатии правой кнопки на заголовок компонента

Чтобы изменять параметры компонента, нужно выбрать необходимое поле в окне инспектора и ввести туда необходимые данные (например, для компонента Transform мы можем ввести координаты расположения игрового объекта). Также через контекстное меню мы можем копировать компоненты и вставлять их на другие игровые объекты, а если на нем уже был такой компонент, то он предложит одно из двух действий, либо вставить его как новый, либо просто копировать значения из копируемого компонента в тот что висит на игровом объекте.

Unity поддерживает работу с любыми 3D объектами созданными в стороннем программном обеспечении, но также она умеет сама создавать такие примитивные объекты как куб, сфера, капсула, цилиндр и плоскость. Эти объекты часто используются для быстрого прототипирования игр. Чтобы создать любой из них пройдите в контекстное меню GameObject/3D Objects и выберите любой из них. Тоже самое можно сделать в окне иерархии нажав на пустое место правой кнопкой мыши и выбрав пункт 3D Object.

Пример примитивного 3D объекта в Unity
Пример примитивного 3D объекта в Unity

Как я уже писал немного выше компонент Transform является единственным компонентом, который нельзя удалить с игрового объекта. Давайте посмотрим на его параметры немного более подробно:

1. Position – это позиция нашего игрового объекта в сцене в XYZ координатах

2. Rotation – это вращение нашего игрового объекта в сцене, оно также задается в XYZ, но это уже не координаты, а оси по которым мы поворачиваем наш объект в градусах.

3. Scale – это размер нашего игрового объекта в сцене. По умолчанию он равен 1. Меняется он также по всем 3 осям.

Переключатель активности игрового объекта
Переключатель активности игрового объекта

Любой игровой объект можно включить или выключить либо через галочку что на картинке выше (ее можно найти в окне инспектора), либо через код. Когда мы отключаем игровой объект все его компоненты перестают работать. Также если у этого игрового объекта были вложенные объекты (дети), то при его отключении они также перестают функционировать.

Стоит также упомянуть о еще двух важных свойствах игровых объектов. Первое это теги (на картинке выше выпадающий список Tag). Теги — это слова которые как бирки можно вешать на игровые объекты. Например, врагам присвоить тег «Враг» чтобы скрипт игрока понимал кто есть враг. Или же создать тег «коллекционируемые» и присвоить его всем игровым объектам, которые игрок сможет собирать. Теги нужны в основном для написания скриптов чтобы определять в них какой объект перед вами и не писать для каждого отдельного игрового объекта свой код, а сделать его более универсальным. Более подробно мы еще разберем работу с тегами в коде в будущих статьях, сейчас же достаточно знать, как их установить игровому объекту и добавить собственные теги. Для установки тега игровому объекту нужно просто выбрать его из списка Tag.

Выпадающий список тегов
Выпадающий список тегов

Чтобы добавить новый тег нужно выбрать в конце списка пункт Add Tag в открывшемся окне инспектора нажмите + и впишите свой тег. Теперь он есть в списке тегов. Также в Unity по умолчанию уже присутствует несколько тегов (например MainCamera, для определения главной камеры на сцене).

Если игровой объект статично стоит на сцене и никуда не перемещается – то это статический объект. Если же он движется во время выполнения игры – это динамический объект.

Когда вы помечаете игровой объект как статический (галочка напротив пункта Static), при условии, что он не будет двигаться во время выполнения – такой объект будет экономить вычислительные мощности игрока, так как Unity автоматически оптимизирует работу с такими игровыми объектами.

Выпадающий список рядом с переключателем Static
Выпадающий список рядом с переключателем Static

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

После работы со сценой и проектом в целом не забывайте сохранять изменения. В Unity сохранения делятся на 2 вида:

1. Это сохранение самой сцены

2. Это сохранение различных настроек проекта, а также ассетов и настроек в них

Как сохранить сцену я писал выше. А для сохранения проекта в любой момент выберите в контекстном меню File\Save Project. Также не забывайте – когда вы открыли префаб для редактирования – любое сохранение (как проекта, так и сцены) сохранит изменения в префабе.

На сегодня это все. В следующей статье я расскажу о том, что такое префабы и как с ними работать. Спасибо всем, кто дочитал эту статью до конца, подписывайтесь на канал, ставьте лайки, а для тех, у кого появились вопросы - спрашивайте в комментариях! А если вы хотите помочь данному каналу в развитии – делитесь этой статьей с друзьями в социальных сетях!

МОЙ КАНАЛ НА YOUTUBE | ГРУППА МОЕЙ ИНДИ ИГРЫ В VK