К основному контенту
 
Блог онлайн школы Пиксель

Как сделать NPC для Unity 3D

Привет, друзья! Мы возвращаемся с уроками по Юнити и программированию на языке 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 обучение на русском бесплатно.



Бесплатные видеоуроки Unity для детей
Смотрите также
Как сделать магазин на Скретч (Scratch)
Мы покажем, как создать карту с магазином в Scratch, чтобы покупать товары в игре.
Строительство в Minecraft на Python — бесплатные видеоуроки для детей онлайн
Демонстрируем пошаговые уроки, которые помогут исследовать Python: изучаем программирование на примере Minecraft.
Как сделать хоррор на Scratch: мистический лабиринт. Уроки Scratch по созданию игр
Делимся инструкцией по тому, как создать страшный лабиринт в среде программирования Scratch.
Уроки программирования на Python для детей: импорт модулей и их установка
В статье расскажем самое главное про импорт модулей Python.