using UnityEngine; using UnityEngine.AI; using System.Collections; using static UnityEngine.GraphicsBuffer; public class AI : MonoBehaviour { [SerializeField] private NavMeshAgent agent; [SerializeField] private int waittime; [SerializeField] public Transform[] targets; private int currentTargetIndex; private bool isWaiting; private void Start() { targets = new Transform[3]; targets[0] = GameObject.Find("Cube (2)").transform; targets[1] = GameObject.Find("Cube (3)").transform; targets[2] = GameObject.Find("Cube (4)").transform; if (targets.Length > 0) { currentTargetIndex = 0; SetNextDestination(); } } private void Update() { if (!isWaiting && agent.remainingDistance <= agent.stoppingDistance && !agent.pathPending) { StartCoroutine(GoToNextTarget()); } } private void SetNextDestination() { if (targets.Length == 0) return; agent.SetDestination(targets[currentTargetIndex].position); } private IEnumerator GoToNextTarget() { isWaiting = true; yield return new WaitForSeconds(waittime); currentTargetIndex++; SetNextDestination(); isWaiting = false; } }