Открываем Юнити, создаем Plane. Далее на нем создаем сферу, это будет наш персонаж. И создаем куб, это будет npc. Добавляем на куб Rigidbody.
Создаем скрипт. В скрипте объявляем скорость и объект, за которым будем следовать.

Далее в Update создаем еще одну переменную, в которую будем записывать скорость, умноженную на Time.deltaTime, это нужно для сглаживания движения.
В следующей строке пишем, что меняем позицию объекта к объекту Player.

Перемещаем скрипт на куб, в пустое поле добавляем сферу. Запускаем и проверяем.
Создаем еще один скрипт. Теперь сделаем так, чтобы NPC ходил непрерывно из одной точки в другую. Объявляем скорость.

Присваиваем значение.

В Update пишем, что перемещаем объект по оси X (Vector3.left), умножая на скорость и сглаживание.

Далее проверяем, в каких координатах находится объект. Возвращаемся в Юнити, ставим куб в начальную точку, откуда он будет начинать движение, копируем координату по X в инспекторе и вставляем в первый if, перемещаем куб в конечную точку, копируем координату и вставляем во второй if. Когда объект достигнет первой координаты, скорость уменьшиться. Когда достигнет второй, это будет означать, что ему нужно двигаться обратно.

Перемещаем скрипт на куб, первый скрипт удаляем с куба. Запускаем и проверяем.
Теперь давайте сделаем так, чтобы, когда персонаж находится близко к кубу, он подходил к нему. А когда персонаж далеко от куба, то он ходил из стороны в сторону. Открываем второй скрипт и в нем добавляем переменную персонажа.

Объявляем переменную dist и в нее с помощью метода Distance записываем дистанцию между объектами. С помощью Debug в консоль будет выводиться дистанция между объектами.

И добавляем еще один if: если дистанция больше 5, то объект будет двигаться из стороны в сторону.

Если дистанция меньше 5, то куб будет идти к персонажу.

Полный скрипт:

Добавляем в инспекторе объект персонажа, запускаем и проверяем.
Друзья, если вы хотите поглубже погрузиться в Unity, записывайтесь на онлайн-курсы в школу “Пиксель”. Мы проводим уроки по Юнити и Си Шарп, учим создавать игры и писать для них скрипты. А еще смотрите наши видеоуроки на YouTube, чтобы пройти Unity обучение на русском бесплатно.