当我为游戏对象创建路径时,它会工作并跟随它,但是当我创建一个新路径时,它不会遵循它。造成这种情况的原因是什么?
public class Unit : MonoBehaviour {
protected NavMeshPath path;
void Start () {
path = new NavMeshPath();
agent = GetComponent<NavMeshAgent>();
agent.SetPath(path);
}
public void SetNextWaypoint(Vector3 location){
agent.ResetPath();
agent.CalculatePath(location, path);
agent.SetPath(path);
}
}
然后我有一个看起来像这样(简化)的航点类:
public class Waypoint : MonoBehaviour {
void OnTriggerEnter(Collider other){
Unit unit = other.GetComponent<Unit>();
Vector3 next = nextTeam2.position;
unit.SetNextWaypoint(next);
}
}
航点触发器正在运行,SetNextWaypoint
方法也是如此。然而,游戏对象不会移动到下一个航点。它转到第一个,但一旦到达那里它就不会进入第二个。
答案 0 :(得分:0)
我明白了!问题是我的下一个航路点位于NavMesh之上太远了。但由于某些原因,path.status
仍在返回PathComplete
。
将Waypoint移近navmesh可让对象转到下一个Waypoint而不是停止。