Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //PatrolRoute gameobject and children locations have been created
- // enemy has a navmeshagent component on it.
- using UnityEngine.AI;
- public class EnemyBehaviour : MonoBehaviour
- {
- [SerializeField] private Transform patrolRoute;
- [SerializeField] private List<Transform> locations;
- private int locationIndex = 0;
- private NavMeshAgent agent;
- private void Start() {
- agent = GetComponent<NavMeshAgent>();
- InitializePatrolRoute();
- MoveToNextPatrolLocation();
- }
- private void Update() {
- if (agent.remainingDistance< 0.2f && !agent.pathPending) {
- MoveToNextPatrolLocation();
- }
- }
- private void MoveToNextPatrolLocation() {
- if (locations.Count == 0) { return; }
- agent.destination = locations[locationIndex].position;
- locationIndex = (locationIndex + 1) % locations.Count;
- }
- private void InitializePatrolRoute() {
- foreach (Transform child in patrolRoute)
- {
- locations.Add(child);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement