簡體   English   中英

我需要幫助嘗試在Unity C#中的IF語句中反轉邏輯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM