[英]I need help trying to reverse logic in an IF statement in Unity C#
我正在使用一個簡單的GameObject [],它將Game Objects用作navAgent要移動到的“ navPoints”。
我有一個簡單的方法,就像這樣:
public void pickNextNavPoint()
{
++navIndex;
if (navIndex >= myNavPoints.Length)
navIndex = 0;
}
然后,我使用一種方法:
public void FindDestination()
{
GetComponent<NavMeshAgent>
().SetDestination(myNavPoints[navIndex].transform.position);
}
這使我的NavAgent轉到NavPoint,然后轉到下一個,依此類推。
我的問題很簡單,如何使用相同的簡單邏輯更改此方法以使其逆向運行?
您可以執行以下操作:
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等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.