Начинающие разработчики игр, в первые моменты после установки игрового движка Unity задаются вопросом? Как реализовать управление персонажем в 2D пространстве  Юнити. 

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

 

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

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

Создание игрового объекта на сцене Unity

 

2. На игровой объект, вешаем компонент RigidBody 2D у которого есть свойство velocity. Для этого выбираем наш игровой объект на сцене и в инспекторе жмем кнопку “AddComponent”. Вбиваем название компонента RigidBody 2D как на изображении и выбираем его.

Добавление компонента RigidBody 2D в Unity

Можно использовать и AddForce но, velocity будет более понятен новичкам.

 

3. Далее, чтобы объект не падал в пространстве, в поле Body Type выбираем Kinematic. Если же вам надо чтобы игрок имел физические свойства, оставляем Dynamic.

RigidBody 2D включение физических свойств

 

4. Создаем новый скрипт, и называем его Controller, можно как угодно назвать, главное чтобы было понятно вам. Для этого в блоке Assets жмем правой клавишей мыши, выбираем “Create/C# Script”.

Добавление нового скрипта в Unity

 

5. Только что созданный скрипт, перетаскиваем на нашего игрока. Скрипт будет отображаться в инспекторе в виде компонента. Далее, открываем файл Controller двойным кликом по нему.  Должен открыться редактор Visual Studio.

Добавление скрипта на игровой объект

 

6. В файле создадим 4 поля vertical и horizontal, speed, а так-же ранее добавленный в Инспектор компонент RigidBody 2D. В методе Start получаем компонент для дальнейшей работы с ним.

private float vertical; //Движение по вертикали
private float horizontal; //Движение по горизонтали
private Rigidbody2D rb; //Компонент RigidBody 2D
[SerializeField] private float speed = 5; //Скорость перемещения

private void Start()
{
    rb = GetComponent<Rigidbody2D>();
}

Добавление полей в скрипт

 

 7. В методе Update, будем отслеживать нажатия клавиш и записывать значения в поля vertical и horizontal. Для этого есть метод Input.GetAxis(«») который, отслеживает событие нажатия клавиш A, W, D, S и клавиши со стрелками на клавиатуре. Умножим все на заданную скорость, полем speed.

horizontal = Input.GetAxis(«Horizontal») * speed;

vertical = Input.GetAxis(«Vertical») * speed;

Отслеживание нажатий клавиш в Unity

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

 

8. Осталось, присвоить значения полей vertical и horizontal, компоненту RigidBody 2D. Сохраняем файл.

rb.velocity = new Vector2(horizontal, vertical);

Сохранение файла в Visual Studio

 

9. Открываем Unity и запускаем проект. Чтобы изменить скорость, меняем значение в поле speed через инспектор. Все наш персонаж движется.

Игровая сцена Unity

 

 

Заключение

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

Оцените статью:

(3 оценок, средняя: 2,33)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *