Найти в Дзене
ZDG

Ни бум-бум в Unity: Начало

Оглавление

Некоторое время назад я планировал сделать цикл статей с таким названием, но всё пошло немного не так. Дело в том, что Юнити долгое время казался мне каким-то мутным игровым движком, а самое главное, с совершенно другой философией, чем я привык. И поэтому я думал, что освоить его будет проблематично. Отсюда и название.

Так что же пошло не так? Оказалось, что Unity – вполне понятный и дружелюбный, как к пользователю, так и к программисту, движок, и я смог работать с ним прямо сразу без каких-либо трудностей. Поэтому "ни бум-бум" уже не отвечает действительности.

Unity vs. Flash

Долгое время я работал с Flash, конкурентом которого был Юнити. Когда дело доходило до 3D-графики, Юнити обгонял Flash, хотя и на флэше были какие-то зачатки 3D, которые могли бы вырасти в полноценную платформу, но не получилось.

Когда я познакомился с Unity, то обнаружил, что он во многом напоминает Flash. Кроме того, язык C#, который используется в Юнити, очень похож на флешовый ActionScript 3, так что и здесь нет особых проблем. Я начал писать на До-диезе просто сразу, хотя раньше никогда не писал на нём.

Подготовка среды

Не буду здесь ничего особо расписывать, так как всё абсолютно стандартно. Нужно открыть ссылку unity.com/download и скачать Unity Hub. Это приложение, которое заведует скачиванием всех остальных приложений. Установив его, вы можете скачать собственно редактор Unity.

IDE для С#

Также потребуется среда для редактирования файлов C#. Unity не предоставляет собственного редактора. В принципе, редактировать их можно где угодно, хоть в блокноте. Но если нужна подсветка синтаксиса и ошибок, автоформат и прочее, то нужно установить какую-нибудь IDE, которая умеет работать с C#. Их много, например MonoDevelop, Raider, Visual Studio Code.

Сначала я поставил Raider, но потом он мне не понравился своим поведением и я поставил VSCode. В общем, абсолютно всё равно. Когда вы открываете в Юнити .cs-файл, просто запускается соответствующий редактор для него. Если не запускается, нужно настроить в системе приложение по умолчанию для открытия этого типа файлов.

Редактор Unity

Первый шаг это создание нового проекта. Существуют предопределённые шаблоны для разных типов проектов, и я пока выбираю 3D Core, чтобы там не было ничего лишнего.

После создания проекта мы увидим главное окно редактора:

-2

По центру находится "окно в мир". Так как Юнити это визуальный игровой движок, в нём по умолчанию присутствует некое пустое пространство, в которое мы можем смотреть.

Это пространство называется сценой. Как только мы добавляем на сцену какой-либо объект, то сразу же начинаем его там видеть. Естественно, если этот объект имеет визуальное представление.

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

Обратите внимание, что у отображения сцены есть две закладки: Scene и Game, и сейчас выбрана Game. Это вид, который мы видим непосредственно в игре.

Слева находится панель Hierarchy. Это древовидная иерархия всех игровых объектов. Сцена – корневой элемент. А к ней прикреплены: Main Camera (главная камера) и Directional Light (направленный свет). Эти два объекта – тот минимум, который нужен для визуалиации.

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

Переключимся в закладку Scene:

-3

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

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

Попробуем добавить на сцену 3D-объект. Для этого нужно в панели иерархии нажать правую кнопку мыши, чтобы вызвать контекстное меню:

-4

И вот на сцене появилась сфера.

-5

Переключимся в режим камеры. Так это будет выглядеть в игре:

-6

Сфера кажется слишком маленькой, хотя конечно непонятно, для чего она вообще. Чтобы сделать её больше, можно либо увеличить саму сферу, либо придвинуть её ближе к камере. Я придвигаю ближе, меняя кординаты:

-7

Обратите внимание на панель Inspector и цифры в ней. "Единицей" в Юнити считается один метр. Данная сфера имеет диаметр 1 метр и находится на расстоянии 3 метра от камеры.

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

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

Play

Сверху над панелью сцены есть кнопка "Play". Если на неё нажать, мы фактически запустим игру и увидим, как она работает:

-8

Очевидно, что работает она пока никак. Просто в центре экрана висит белая сфера, и всё. Тем не менее мы имеем уже полноценное приложение, в котором без всяких усилий получены камера, 3D-объект и освещение.

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