Я пытаюсь создать в своей игре Unity простой двухмерный NPC для поиска пути, который будет перемещаться от точки к точке. Я использую массив путевых точек и Vector3.MoveTowards для перемещения между точками, но каждый раз, когда я проверяю это, NPC будет двигаться к первой путевой точке в течение секунды, а затем начинает путешествовать вниз по экрану и навсегда удаляться от путевой точки. Я не уверен, почему это продолжает делать это. Вот фрагменты кода, который я использую:
public float speed = 1f;
public Transform[] waypoints;
private int curWaypoint;
void Start()
{
curWaypoint = 0;
}
void Update()
{
MoveForward();
}
void MoveForward(){
transform.position = Vector3.MoveTowards(transform.position,
waypoints[curWaypoint].transform.position,
Time.deltaTime * speed);
if(transform.position == waypoints[curWaypoint].transform.position){
curWaypoint += 1;
}
if(curWaypoint == waypoints.Length){
curWaypoint = 0;
}
}
Путевые точки - это просто пустые объекты GameObject с гизмо на них, чтобы их можно было увидеть в редакторе. Затем я заполняю массив путевых точек в инспекторе путевой точкой, которой должен следовать NPC. Я не могу понять, что вызывает это странное поведение, поэтому любая помощь будет оценена.