We need to take into account the order in which we put the patrol points in the array, so that they work as intended. Also, we could work on this a little bit by creating a function for deciding what the next patrol point will be. This will come in handy if we decide to keep improving the patrolling behavior according to our game's requirements:
private int CalculateNextPoint()
{
return (currentPoint + 1) % patrolPoints.Length;
}
private void Update()
{
if (!agent.pathPending && agent.remainingDistance < pointDistance)
GoToPoint(CalculateNextPoint());
}