c# - 变量在 Update() 中不断累加

标签 c# unity3d

我是新手。

我在这里遇到了一个非常奇怪的问题,我定义的文件只是在 Update() 函数中不断累加。

这是我的代码:

using UnityEngine;
using System.Collections;

public class MenuManager : MonoBehaviour {

    private int counter = 0;

    void Update ()
    {
        ShowSelectedMenuItem ();
    }

    private void  ShowSelectedMenuItem() {

        if (Input.GetAxisRaw ("Vertical") > 0.9) {


        } else if (Input.GetAxisRaw ("Vertical") < - 0.9) {

            Debug.Log("s Down");

            counter=counter+1;

            Debug.Log (string.Format("counter {0} ",counter));
            Debug.Log("Finish s down");

        }
    }   
}

我排除了这样的输出:s Down counter 1 Finish s down

但是,在日志中我得到: s Down counter 1 Finish s down counter 2 counter 3 counter 4 counter 5 counter 6 counter 7 counter 8

这真的很奇怪,无论我做什么,我都尝试了counter++,counter = (counter+1)。没有什么不同。在函数之后,计数器只是继续加起来 7 次,但是“s Down”和“Finish s down”从未出现过第二次。此脚本附加到空项目中的空对象。我的编辑器版本是4.5.4

任何帮助将不胜感激

最佳答案

通过将此更改添加到您的代码中,我得到了您想要的结果:

else if (Input.GetKeyDown(KeyCode.DownArrow))
{   
    Debug.Log("s Down");

    counter=counter+1;

    Debug.Log (string.Format("counter {0} ",counter));
    Debug.Log("Finish s down");
}

结果:

enter image description here

关于c# - 变量在 Update() 中不断累加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331569/

相关文章:

c# - 如何找到是否存在于任何多边形区域内的点?

c# - 角色在 Unity 中使用人形动画类型慢慢向上移动

c# - Unity3D PlayableDirector向后播放时间轴动画

java - 将表示数学表达式的树转换为没有多余括号的字符串

c# - 获取通用 Windows 应用程序错误

c# - 匹配包含美元符号的整个单词?

unity3d - 在 Unity3D 中将 alpha 添加到着色器

unity3d - 在 Microsoft HoloLens 上查找网格中的固定点

c# - 在Unity3D中显示一个对象几毫秒

c# - LinearGradientBrush 导致非平滑渐变位图