Как сделать управление персонажем в Unity по типу игры Bomberman
Друзья, мы продолжаем публиковать уроки по Unity! На этот раз мы займемся движением персонажа. В этом уроке мы попробуем создать такое же управление, как в игре Bomberman.
В чем уникальность данного управления? В отличие от привычных нам сейчас плавных поворотов в сторону движения, поворот в игре Bomberman осуществляется резко в нужную нам сторону.
Создаем plane и перемещаем модель персонажа на сцену. Настраиваем размеры персонажа. Ставим персонажа и plane в центр. Для этого в компоненте Transform в поле position ставим нули по всем координатам.
Добавляем BoxColider на персонажа и настраиваем его границы. Добавляем Rigidbody.
Создадим папку для скриптов, назовем ее Scripts.
И в этой папке создадим скрипт, назовем его PlayerController. При переименовании скриптов после их создания необходимо в коде задать новое название.
Объявляем две переменные:
movement Speed - скорость движения персонажа;
rb - физика объекта.
В старте назначаем компонент переменной rb.
Далее в функции Update мы объявляем переменную mov типа Vector3.
Vector3 — это представление трехмерных векторов и точек, используемых для представления трехмерных положений с учетом осей x, y, z.
В нее записываем значение направления по горизонтали (Horizontal) и вертикали (Vertical), умноженное на скорость. Далее в переменную mov записываем обрезанные вектора Clamp Magnitude для ограничения максимальной скорости.
ClampMagnitude возвращает копию вектора с обрезанной величиной.
Оператором if проверяем значение mov, оно не должно быть равно нулю. В блоке if перемещаем и поворачиваем объект.
Скрипт:
Скрипт переносим на персонажа в инспектор. Запускаем и проверяем.
Сделаем так, чтобы камера следовала за персонажем. Создаем скрипт, называем его CameraManager. В нем объявляем две переменные.
Transform pl - координаты персонажа;
Vector3 offset - координаты камеры.
В Update перемещаем камеру за игроком.
Перемещаем скрипт на камеру. Добавляем в pl объект персонажа. Нам нужно в инспекторе указать координаты камеры, то есть расстояние между камерой и игроком, чтобы она к нему не прилипала. Запускаем Юнити, в инспекторе меняем координаты камеры в скрипте так, как считаете нужным. Наведите курсор на поле с координатами и у вас появятся стрелки. Если зажатой ЛКМ потянуть в ту или иную сторону, координаты начнут меняться.
На этом все, вот такое мы сделали управление. Если вы хотите поглубже разобраться в этом игровом движке и узнать, что еще можно сделать с персонажем в Юнити, приходите к нам на полный курс по созданию игр на Unity 3D. Мы научим вас разрабатывать свои полноценные 2D- и 3D-игры, делать анимацию персонажей, добавлять диалоги, NPC, магазин и инвентарь и многое другое. А также программировать на языке С#, который используется в Юнити. Приходите к нам!