首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要帮助来尝试在Unity C#中反转IF语句中的逻辑

我需要帮助来尝试在Unity C#中反转IF语句中的逻辑
EN

Stack Overflow用户
提问于 2019-02-22 10:49:57
回答 1查看 81关注 0票数 0

我使用了一个简单的GameObject[],它使用游戏对象作为navAgent移动到的"navPoints“。

我有一个简单的方法,它的工作原理如下:

代码语言:javascript
复制
  public void pickNextNavPoint()
    {
        ++navIndex;
        if (navIndex >= myNavPoints.Length)
            navIndex = 0;

    }

然后我使用一个方法:

代码语言:javascript
复制
public void FindDestination()
    {
        GetComponent<NavMeshAgent> 
        ().SetDestination(myNavPoints[navIndex].transform.position);

    }

这使我的NavAgent转到一个NavPoint,然后是下一个,依此类推。

我的问题很简单,我怎样才能用同样简单的逻辑改变这个方法,让它反向运行呢?

EN

回答 1

Stack Overflow用户

发布于 2019-02-22 11:03:15

你可以这样做:

代码语言:javascript
复制
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,以及其他东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54819371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档