private void FixedUpdate() { if (target == null) { if (!searchingForPlayer) { searchingForPlayer = true; StartCoroutine(SearchForPlayer()); } return; } //Always look towards player? if (path == null) { return; } if (currentWaypoint >= path.vectorPath.Count) { if (pathIsEnded) { return; } //Debug.Log("End of path reached"); pathIsEnded = true; return; } pathIsEnded = false; //Direction to the next waypoint Vector3 dir = (path.vectorPath[currentWaypoint] - transform.position).normalized; CheckSide(dir); dir *= speed * Time.fixedDeltaTime; //Move the AI bandit.Move(dir, fMode); float dist = Vector3.Distance(transform.position, path.vectorPath[currentWaypoint]); if (dist < nextWaypointDistance) { currentWaypoint++; return; } }