Цель: создать врага, который будет двигаться к игроку, если он рядом.

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

Во-первых, я создал новый скрипт для этого врага, так как у него новое поведение. Главное, что здесь отличается, это добавленная функция Vector3.Distance. По сути, мы рассчитываем расстояние врага от игрока, и если враг находится в пределах этого заданного расстояния, то он устремится к игроку.

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

Затем я создал переменную для минимального расстояния между этими двумя объектами, прежде чем что-либо произойдет.

Теперь мы можем создать нашу функцию Vector3.Distance.

Это вернет расстояние между позицией цели и позицией противника. Теперь мы можем создать наш оператор if, который завершит функцию трамбовки, только если расстояние меньше минимального расстояния.

Функция, содержащаяся в этом операторе if, описана в моей статье о самонаводящейся атаке; однако это, по сути, использует перекрестное произведение между целью и позицией противника для поворота к игроку.

Теперь мы можем создать оператор else if, который в основном вернется в свое нормальное состояние, если он больше не находится в пределах заданного расстояния.

Мы будем использовать Quaternion.Slerp, который плавно вернет вращение к максимально близкому к нулю значению от a до b.

Это подводит итог этой функции!

В эту игру можно играть на itch.io. Я буду обновлять его как можно чаще. Дайте ему играть и дайте мне знать, что вы думаете!