Enemy AI patrols between points Script
Guard AI part 2
1 min readSep 20, 2021
In this article we will make our guard move between waypoints.
Guard Patrol between Waypoints Pseudocode/logic
if waypoints exist .count > 0 && currenttarget != null
check distance between guard and destination
if the distance is less than 1 unit
if currenttarget == waypoints.count
turn on reverse
if currenttarget == 0
turn off reverse
if reverse is off increment currenttarget
if reverse is on then decrease currenttarget
set destination to current target
Guard Patrol between Waypoints Code
private NavMeshAgent _agent;
public List<Transform> waypoints;private int currentTarget = 0;
private bool _isReverse = false;void Start ()
{
_agent = GetComponent<NavMeshAgent>();
}
void Update ()
{
if (waypoints.Count > 0 && waypoints[currentTarget] != null)
{
float distance = Vector3.Distance(transform.position, waypoints[currentTarget].position);
if (distance < 1)
{
if (currentTarget >= waypoints.Count - 1)
{
_isReverse = true;
}
else if (currentTarget <= 0)
{
_isReverse = false;
}
if (_isReverse == true)
{
currentTarget--;
}
else if (_isReverse == false)
{
currentTarget++;
}
}
_agent.SetDestination(waypoints[currentTarget].position);
}
}