Создавая игру с нуля в Unity, разработчик наблюдает сцену с расположенными на ней гейм-объектами. Поведение этих объектов определяют компоненты. Приведем примеры:
Transform диктует значения нахождения, размеров, вращения и состояния наследования объекта.
Rigidbody ответственен за трансформации и отклик на гравитацию.
Каждый игровой объект является контейнером для различных компонентов.
Кодинг в Юнити строится на формировании классов, выступающих в качестве компонентов у объектов. Посмотрим, за что ответственны игровые классы:
Audio : воспроизведение музыки и передача звуков при перемещении;
Settings : соответствие состояния проекта заданным настройкам;
Data : информация о юзерах;
Serializable Settings : сохранение пользовательских настроек;
Player : действия героя, которым руководит игрок;
Health : здоровье спрайта;
Scrolling : непрекращающееся движение заднего фона и его объектов.
Поглубже вникнуть в термины и работу с ними через скрипт поможет тематический видеоурок.Еще одна специфика Unity — мультисценное взаимодействие. Пользователь использует несколько гейм-сцен одновременно и меняет их по необходимости.
Разработка игр на Unity: как осуществить управление героем в 3D Итак, среда установлена, а интерфейс и инструменты изучены. Пришла пора рискнуть и сделать проект на игровом движке. Сконструируем сцену, внедрим спрайта и обучим его перемещениям.
Тому, как заставить двигаться персонажей игры, посвящен видеоурок: советуем ознакомиться.Прежде всего стоит заняться подготовкой сцены. Выбираем Plane и Sphere в роли героя. Для добавления этих объектов в меню Hierarchy нужно нажать на +, следом — на 3D Object → Plane (или Sphere).
Поделим сцену на 2 компонента. Один из них — пространство, по которому передвигается персонаж. Расположение сферы регулируется потягиванием за стрелки.Игровое поле для программирования движения персонажа-сферы
Важно, чтобы был активизирован Collider — этот компонент представляет собой невидимые «границы» объекта и связан с движениями при столкновении. Чтобы добавить коллайдер, потребуется поставить галочку в правом нижнем углу.
После займемся компонентом Rigidbody: он поможет «оживить» персонажа и настроить его поведение и реагирование на гравитацию. Отыскать компонент можно так: Add Component → Physics → Rigidbody.
Продолжаем разработку игр на Юнити: пишем код для движения героя Перейдем к написанию скрипта для передвижения спрайта на C#.
Для создания кода делаем правый щелчок мышью в районе сцены. В появившемся окне нажимаем Create → С# Script. Скрипту необходимо дать название на английском. В текущем случае наименование — PlayerController.
Пропишем 4 переменные типа float: от них зависит скорость перемещения по осям координат. Взглянем на эти переменные:
MovementSpeed : темп хода;
TurningSpeed : скорость поворота;
Vertical : вертикальное передвижение;
Horizontal : горизонтальный сдвиг.
В переменную Horizontal пропишем продвижение по горизонтали, помноженное на скорость поворота и Time.deltaTime: это позволит сгладить действия. Поворот объекта осуществляется по оси Y.
То же проделываем и в отношении переменной Vertical: внесем движение по вертикали, перемноженное на скорость движения и Time.deltaTime. Таким образом, герой станет передвигаться по оси Z.
Не забудьте сохранить программу комбинацией клавиш Ctrl+Shift+S. Скрипт остается поместить на спрайта: используя мышь, переместите его в правое меню.
Жмем на кнопку пуска и смотрим, что получилось.
Разработка 2D-игры на Unity: делаем программу с управлением персонажа Как уже упоминалось, в Юнити выполняются не только игры в 3D, но и в «плоской графике». Предлагаем осуществить похожий проект, но на этот раз в 2D.
В первую очередь, предстоит встроить землю и героя в сцену. Скачать ресурсы можно тут — или же поискать подходящие в библиотеке с ассетами, о которой говорилось выше.
При помощи мыши перемещаем спрайта и землю на сцену. Воспользуемся сочетанием клавиш Ctrl+D и инструментом Move: клонируем отрезок земли и распределим поверхность по сцене.Инструмент Move
Переходим к объединению долей земли для упрощения добавления компонентов на платформу. С этой целью создаем пустой объект: нажимаем на + и останавливаемся на Create Empty. Переместим в этот объект клонированные сегменты земли.
Поверхность, по которой движется герой, окажется в папке Game Object — с ней и будем контактировать далее. Избираем Game Object и нажимаем на Add Component → Physics 2D → Box Collider 2D.
Коллайдер обозначится на сцене, но в одной точке. Следует растянуть его по поверхности, зажав Edit Collider.
Зажимаем края и вытягиваем Collider по земле.
То же делаем и со спрайтом. В Hierarchy останавливаемся на объекте героя: в данной ситуации его имя — dragon.
Прибавляем Box Collider 2D и тянем по спрайту. Используя колесико мыши, получится поближе рассмотреть персонажа, а применяя Edit Collider — тщательно подправить границы Коллайдера. Остается позаботиться о физике: Add Component → Physics 2D → Rigidbody 2D.
Примеры созданной игры в формате 2D
Переходим к составлению кода на C# для разработки 2Д-игры на Юнити. Совершаем правый клик мышью и выбираем Create → С# Script. Затем объявляем переменные:
maxSpeed : скорость спрайта, задаем равную 10;
flipRight : позволяет отразить героя по горизонтальной оси X или по вертикальной оси Y. Необходимо реализовать отражение по X в соответствии с направлением передвижений персонажа.
Воспользовавшись компонентом Rigidbody, осуществляем движение по горизонтали, помноженное на скорость.
Обозначаем при участии инструмента Move направление передвижения по горизонтали. Используем оператор if-else: если пользователь зажимает клавишу «влево», то герой перемещается в левую сторону, в коде возвращается −1. Если же «вправо» — спрайт отправляется в правую сторону, возвращается 1.
Сохраняем скрипт и помещаем на дракона. Запускаем готовый проект.
Подошло к концу создание 2D-игры: если следовать инструкциям, это должно занять не более 30 минут.
Если процесс и финальный итог доставили удовольствие, продолжить совершенствоваться в искусстве построения игр можно при конструировании раннера: воспользуйтесь видеоуроком.Сохранение проекта и публикация его в Play Market Добавление игры в Unity Asset Store или Play Market займет в 2 раза меньше времени, чем разработка. Рекомендуем прибегнуть к видеоинструкции.Теперь вы знаете, как создать игру на Unity. Придумывайте и воплощайте проекты, тестируйте результаты, публикуйте их в Сети и получайте обратную связь: постоянная практика поможет прокачаться в геймдеве и построить карьеру в IT-сфере.