我需要反转这个脚本,用来制作一个游戏对象,让它在一些变换之间进行巡逻。我需要这个对象从点(1, 2, 3, 4, 5)开始依次导航,当它到达数组的末端时,它将数组本身的顺序反转,这样它就会导航回来(5, 4, 3, 2 ,1)。
using UnityEngine;
using UnityEngine.AI;
public class Patrol : MonoBehaviour
{
public Transform[] points;
private int destPoint = 0;
private NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
agent.autoBraking = false;
GotoNextPoint();
}
void GotoNextPoint()
{
if (points.Length == 0)
return;
agent.destination = points[destPoint].position;
destPoint = (destPoint + 1) % points.Length;
}
void Update()
{
if (!agent.pathPending && agent.remainingDistance < 0.5f)
GotoNextPoint();
}
}
你应该使用 Array.Reverse
当达到最终点时,便于在你的代码中实现。
文档 此处.
将此代码添加到 GoToNextPoint
.
destPoint++;
if (destPoint >= points.Length)
{
Array.Reverse(points);
destPoint = 0;
}
并删除。
destPoint = (destPoint + 1) % points.Length;