UnityBiz/AI.cs
2024-09-08 15:56:04 +00:00

56 lines
1.3 KiB
C#

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;
}
}