void Update()
функция вызывается каждый кадр. Поэтому вам нужна функция, которая проверяет, прибывает ли агент в точку, и устанавливает для нее новый пункт назначения.
Я изменил ваш код на это:
using UnityEngine;
using UnityEngine.AI;
public class Path_left_blue : MonoBehaviour
{
private Transform target;
private int wavepointindex = -1;
public NavMeshAgent agent;
void Start ()
{
EnemyTowardNextPos();
}
void Update ()
{
// agent is within a close range/touching target waypoint
if (!agent.pathPending && agent.remainingDistance < 0.5f)
{
EnemyTowardNextPos();
}
}
void EnemyTowardNextPos ()
{
if(wavepointindex == Waypoints_blue_left.waypoints.Length - 1)
{
Destroy(gameObject);
}
else
{
// set destination to waypoint
wavepointindex++;
target = Waypoints_blue_left.waypoints[wavepointindex]
agent.SetDestination(target);
}
}
}
EnemyTowardNextPos()
функция вызывается только когда агент прибывает в текущую точку.
Надеюсь, это поможет вам