Вадим Бордик

Вадим Бордик

Директор школы программирования для детей Pixel

Как создать первую игру на Unity: гайд для детей и начинающих

Как создать первую игру на Unity: гайд для детей и начинающих
24 апреля 2023
Подпишитесь на нас в Telegram

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

Многие из вас слышали об игровом движке Unity («Юнити») – платформе для разработки видеоигр, которая завоевала популярность во всем мире благодаря знаковым проектам: Cuphead, Pokémon GO, Kerbal Space Program и многим другим. В этой статье школа программирования для детей «Пиксель» расскажет о том, как создать свою первую игру на Unity и опубликовать ее в сети.

Игра-платформер CupHead

Unity – это не просто платформа для разработки онлайн-игр, а универсальный инструмент, открывающий доступ в гейм-девелопмент для каждого. Начинать создавать проекты на «Юнити» можно даже в подростковом возрасте: уже с 10 лет дети способны освоить моделирование 3D-объектов и скриптинг на языке C# (Си Шарп).

Как найти шаблоны для игр: Unity Asset Store

Начинающий разработчик может создать игру на «Юнити» на основе предустановленных шаблонов, которые содержат в себе готовые наборы отрисованных 3D-моделей. Среди них шаблоны персонажей, фонов, звуков, голосов и других составляющих игрового мира. Найти такие заготовки можно в онлайн-маркетплейсе Unity Asset Store.

Пример ассета с отрисованными элементами в 3D

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

Что же касается Unity Asset Store, то разработчик может монетизировать созданную им игру, приложение или ассет, загрузив его в онлайн-магазин на платной основе. На маркетплейсе ассетов доступно более 100 000 самых разных проектов, включая 2D- и 3D-модели, шрифты, текстуры, аудио- и видеофайлы. 

Примеры отрисованных персонажей в формате 3D, доступных для скачивания и установки в свой проект

Программирование на языке С# в Unity

Давайте попробуем разработать первый проект на Unity.

Знакомство с интерфейсом и особенности разработки игр на Unity

Для начала нужно скачать и установить Unity 3D – движок для создания игр. Смотрите короткую видеоинструкцию по установке и распаковке программы:

Далее приступим к изучению интерфейса программы.

Первое, что вы видите здесь – это игровая сцена, на которой располагаются объекты игры и их компоненты. Каждый элемент-объект имеет свои обязательные компоненты. Например, элемент Transform, который отвечает за расположение объекта на игровой сцене. Или же Rigidbody, ответственный за симуляцию.

Программирование в Unity 3D построено на создании пользовательских классов, которые как раз выполняют роль компонентов у игровых объектов. 

Чтобы было понятнее, перечислим основные игровые классы:

Audio – отвечает за проигрывание музыки и наличие звуковых эффектов при движении;

Settings – отвечает за то, чтобы текущее состояние игры соответствовало действующим настройкам;

Data – отвечает за хранение пользовательских данных;

Serializable Settings – отвечает за сохранение настроек игры;

Player – отвечает за поведение персонажа игрока;

Health – отвечает за здоровье персонажа игрока;

Scrolling – отвечает за постоянное движение фона и объектов фона.

Чтобы познакомиться подробнее с понятиями классов, переменных и функций в Unity, смотрите видеоурок:

Другой особенностью интерфейса «Юнити 3D» является использование нескольких игровых сцен – рабочих областей для запуска игр. Их можно создавать столько, сколько потребуется, а еще перемещаться между ними.

Создание первого проекта на Unity: как сделать управление персонажем в 3D

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

Кстати, для удобства мы подготовили подробную видеоинструкцию, вы найдете ее здесь: 


Для начала нам необходимо подготовить сцену. Можно выбрать обычный Plane (плоскость) в качестве карты и Sphere (сферу) в роли персонажа. Чтобы добавить эти 3D-объекты, нужно нажать в левом меню (оно называется Hierarchy или Иерархия) на +, затем – на 3D Object → Plane (или Sphere).

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

Игровое поле для программирования движения персонажа-сферы

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

Далее нам понадобится компонент Rigidbody, чтобы оживить персонажа. Rigidbody отвечает за физику героя, то есть за его физическое поведение, реакцию на гравитацию. В настройках в правом нижнем углу экрана выбираем Add Component → Physics → Rigidbody.

Дальше мы будем прописывать скрипт для движения персонажа на языке C#.

Чтобы создать скрипт, необходимо нажать правой кнопкой мыши в области сцены. Далее в открывшемся окне выбираем Create → С# Script. Даем скрипту название, оно обязательно должно быть на английском языке. У нашей программы название PlayerController.

Прописываем в скрипте четыре переменные типа float, от которых будет зависеть скорость передвижения персонажа по всем осям координат. 

В нашей программе будут использоваться такие переменные, как movementSpeed (скорость передвижения), turningSpeed (скорость поворота), vertical (перемещение по вертикали) и horizontal (перемещение по горизонтали).

Затем в переменную horizontal мы запишем движение по горизонтали, умноженное на скорость поворота и Time.deltaTime (это поможет сгладить действия). Наш объект будет поворачиваться по оси Y.

С переменной vertical все очень похоже: записываем движение по вертикали, умноженное на скорость движения и на Time.deltaTime. Благодаря этой переменной наш персонаж будет перемещаться по оси Z.

Обязательно сохраняем программу с помощью клавиш Ctrl+Shift+S. Скрипт готов, осталось переместить его на спрайта. Для этого нужно в «Юнити» с помощью мыши буквально перетащить скрипт в правое меню.  

Нажимаем сверху на значок пуска и проверяем, что получилось.

Как сделать простую программу с управлением персонажа в 2D

В Unity можно создавать как трехмерные, так и плоские игры. Давайте попробуем сделать схожий проект, только в 2D.

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

Перетаскиваем мышкой персонажа и землю на сцену. С помощью клавиш Ctrl+D и инструмента Move (находится в левом верхнем углу) можно продублировать часть земли и таким образом растянуть поверхность на всю сцену.

Инструмент Move

Далее нам нужно объединить все части земли, чтобы было проще добавлять компоненты сразу на всю платформу. Для этого создадим пустой объект (нажимаем на + и выбираем Create Empty) и перенесем в него все продублированные части земли.

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

Выбираем Game Object и в правом нижнем углу нажимаем на Add Component → Physics 2D → Box Collider 2D.

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

И затем беремся за края и растягиваем «Коллайдер» по всем земле.

То же самое нам нужно проделать с персонажем. В «Иерархии» выбираем объект персонажа, в нашем случае он называется dragon. 

Добавляем на него Box Collider 2D и растягиваем по всему спрайту. С помощью колесика мыши можно приблизиться к герою на сцене, а благодаря Edit Collider – аккуратно поправить границы «Коллайдера». Остается только добавить «физику» нашему объекту, для этого переходим в Add Component → Physics 2D → Rigidbody 2D.

Примеры созданной игры в формате 2D

Следующий шаг – написать скрипт на C#. Кликаем правой кнопкой мыши и нажимаем Create → С# Script. В коде объявляем переменные:

  • maxSpeed – скорость персонажа, присваиваем ей 10;
  • flipRight – помогает отразить спрайт по оси X (по горизонтали) или Y (по вертикали). Нам нужно сделать отражение по X в зависимости от того, в каком направлении будет идти герой.

Обращаемся к компоненту Rigidbody и создаем движение по горизонтали, умноженное на скорость (прикладываем силу по оси X).

Указываем с помощью move направление движения героя по горизонтали. Делаем это с оператором if-else: если игрок нажимает клавишу «влево», то персонаж двигается влево (в скрипте нам возвращается -1), если «вправо» – соответственно, спрайт перемещается вправо (нам возвращается 1). 

Сохраняем скрипт и перемещаем его на героя-дракона. Пробуем запустить получившийся проект.

На создание полноценной игры в 2D уйдет не больше получаса. Разработать проект в жанре раннера можно с помощью нашего видеоурока:


Как сохранить игру и загрузить ее в Play Market

Чтобы добавить свой проект в Unity Asset Store или Play Market, потребуется в два раза меньше времени. Смотрите нашу видеоинструкцию: 


***

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

Также смотрите полезные видеокурсы по разработке проектов на Unity и скриптингу на языке С#:

Друзья, теперь вы можете поддержать Лайкни https://pay.cloudtips.ru/p/8828f748
Ваши донаты помогут нам и дальше радовать вас полезным контентом.

Нас удобно читать в соцсетях. Подписывайся!

Комментарии

0 комментариев
Чтобы оставить комментарий, войдите на сайт через:

Будь в курсе

Главные новости, кейсы и статьи за месяц – у тебя в почте:

Отправляя форму, вы принимаете условия обработки персональных данных