我有以下代碼:using UnityEngine;using UnityEngine.AI;using System.Collections;public class AutoPilot : MonoBehaviour {public Transform[] points;private int destPoint = 0;private NavMeshAgent agent;void Start () { agent = GetComponent<NavMeshAgent>(); // Disabling auto-braking allows for continuous movement // between points (ie, the agent doesn't slow down as it // approaches a destination point). GotoNextPoint();}void GotoNextPoint() { // Returns if no points have been set up if (points.Length == 0) return; // Set the agent to go to the currently selected destination. agent.destination = points[destPoint].transform.position; // Choose the next point in the array as the destination, // cycling to the start if necessary. destPoint = (destPoint + 1) % points.Length;}void Update () { // Choose the next destination point when the agent gets // close to the current one. if (!agent.pathPending && agent.remainingDistance < 2f) GotoNextPoint();}}我經(jīng)過航路點(diǎn)的地方,代理跟蹤它們,但是當(dāng)我到達(dá)最后一個(gè)航路點(diǎn)時(shí),如何使它重新啟動(dòng)?繼續(xù)前進(jìn)?可以通過某種方式重置還是最好的方法是什么?
1 回答

忽然笑
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
我通過添加以下內(nèi)容修復(fù)了該問題:
if (destPoint == points.Length) {
destPoint = 0;
}
- 1 回答
- 0 關(guān)注
- 143 瀏覽
添加回答
舉報(bào)
0/150
提交
取消