aesthetic1044, Я у себя примерно так сделал патрулирование
Код
public Transform[] wayPoints;//Все точки патрулирования
public Transform targetWayPoint;//Текущая точка, в которую следует ИИ
EnemyMotor motor;//Здесь у меня управление анимациями
NavMeshAgent agent;//Собственно NavMeshAgent ИИ
void Update ()
{
if (wayPoints.Length > 1)//Если количество точек больше 1
{
if(Vector3.Distance(transform.position, targetWayPoint.position) <= 1f)//И дистанция до текущей точки следования меньше, допустим 1 метр
{
targetWayPoint = wayPoints[Random.Range(0, wayPoints.Length)];//Случайно выбираем следующую точку для следования ИИ
}
else//Иначе
{
agent.SetDestination(targetWayPoint.position);//ИИ следует к текущей точке следовования
motor.Locomotion(agent.velocity.magnitude);//
}
}
}
Уверен, что можно сделать еще изящней