Привет, друзья! Мы возвращаемся с уроками по Юнити и программированию на языке C#. На этот раз мы покажем, как сделать в Unity NPC — неигрового персонажа. Обычно NPC персонаж помогает разнообразить и усложнить игру: он общается с игроком, дает подсказки, может помочь или, наоборот, навредить. Давайте добавим NPC в наши игры!
Открываем Юнити, создаем Plane. Далее на нем создаем сферу, это будет наш персонаж. И создаем куб, это будет npc. Добавляем на куб Rigidbody.
Создаем скрипт. В скрипте объявляем скорость и объект, за которым будем следовать.
Далее в Update создаем еще одну переменную, в которую будем записывать скорость, умноженную на Time.deltaTime, это нужно для сглаживания движения.
В следующей строке пишем, что меняем позицию объекта к объекту Player.
Перемещаем скрипт на куб, в пустое поле добавляем сферу. Запускаем и проверяем.
Создаем еще один скрипт. Теперь сделаем так, чтобы NPC ходил непрерывно из одной точки в другую. Объявляем скорость.
Присваиваем значение.
В Update пишем, что перемещаем объект по оси X (Vector3.left), умножая на скорость и сглаживание.
Далее проверяем, в каких координатах находится объект. Возвращаемся в Юнити, ставим куб в начальную точку, откуда он будет начинать движение, копируем координату по X в инспекторе и вставляем в первый if, перемещаем куб в конечную точку, копируем координату и вставляем во второй if. Когда объект достигнет первой координаты, скорость уменьшиться. Когда достигнет второй, это будет означать, что ему нужно двигаться обратно.
Перемещаем скрипт на куб, первый скрипт удаляем с куба. Запускаем и проверяем.
Теперь давайте сделаем так, чтобы, когда персонаж находится близко к кубу, он подходил к нему. А когда персонаж далеко от куба, то он ходил из стороны в сторону. Открываем второй скрипт и в нем добавляем переменную персонажа.
Объявляем переменную dist и в нее с помощью метода Distance записываем дистанцию между объектами. С помощью Debug в консоль будет выводиться дистанция между объектами.
И добавляем еще один if: если дистанция больше 5, то объект будет двигаться из стороны в сторону.
Если дистанция меньше 5, то куб будет идти к персонажу.
Полный скрипт:
Добавляем в инспекторе объект персонажа, запускаем и проверяем.
Друзья, если вы хотите поглубже погрузиться в Unity, записывайтесь на онлайн-курсы в школу “Пиксель”. Мы проводим уроки по Юнити и Си Шарп, учим создавать игры и писать для них скрипты. А еще смотрите наши видеоуроки на YouTube, чтобы пройти Unity обучение на русском бесплатно.