我使用了一个简单的GameObject[],它使用游戏对象作为navAgent移动到的"navPoints“。
我有一个简单的方法,它的工作原理如下:
public void pickNextNavPoint()
{
++navIndex;
if (navIndex >= myNavPoints.Length)
navIndex = 0;
}然后我使用一个方法:
public void FindDestination()
{
GetComponent<NavMeshAgent>
().SetDestination(myNavPoints[navIndex].transform.position);
}这使我的NavAgent转到一个NavPoint,然后是下一个,依此类推。
我的问题很简单,我怎样才能用同样简单的逻辑改变这个方法,让它反向运行呢?
发布于 2019-02-22 11:03:15
你可以这样做:
public void PickNextNavPoint() {
MoveIndex(1);
}
public void PickPreviousNavPoint() {
MoveIndex(-1)
}
private void MoveIndex(delta) {
navIndex += delta;
// Constrain navIndex between 0 and len - 1
navIndex = Math.Min(Math.Max(0, navIndex), myNavPoints.Length - 1);
}顺便说一句,你应该看看C#的命名指南,你的方法应该是PascalCased,以及其他东西。
https://stackoverflow.com/questions/54819371
复制相似问题