Цель: создать врага, который будет двигаться к игроку, если он рядом.
Я использовал процесс, аналогичный самонаводящейся атаке, чтобы создать врага, который будет двигаться к игроку, если он окажется поблизости.
Во-первых, я создал новый скрипт для этого врага, так как у него новое поведение. Главное, что здесь отличается, это добавленная функция Vector3.Distance. По сути, мы рассчитываем расстояние врага от игрока, и если враг находится в пределах этого заданного расстояния, то он устремится к игроку.
Сначала я хочу создать несколько переменных, и это то, что мы будем использовать для текущей позиции противника и цели, то есть игрока.
Затем я создал переменную для минимального расстояния между этими двумя объектами, прежде чем что-либо произойдет.
Теперь мы можем создать нашу функцию Vector3.Distance.
Это вернет расстояние между позицией цели и позицией противника. Теперь мы можем создать наш оператор if, который завершит функцию трамбовки, только если расстояние меньше минимального расстояния.
Функция, содержащаяся в этом операторе if, описана в моей статье о самонаводящейся атаке; однако это, по сути, использует перекрестное произведение между целью и позицией противника для поворота к игроку.
Теперь мы можем создать оператор else if, который в основном вернется в свое нормальное состояние, если он больше не находится в пределах заданного расстояния.
Мы будем использовать Quaternion.Slerp, который плавно вернет вращение к максимально близкому к нулю значению от a до b.
Это подводит итог этой функции!
В эту игру можно играть на itch.io. Я буду обновлять его как можно чаще. Дайте ему играть и дайте мне знать, что вы думаете!