变量在Update()中连续累加

时间:2014-10-13 00:56:25

标签: 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向下计数器1完成向下

然而,在日志中我得到:s向下计数器1完成向下计数器2计数器3计数器4计数器5计数器6计数器7计数器8

这真的很奇怪,无论我做什么,我都尝试过counter ++,counter =(counter + 1)。没有什么不同。在这个功能之后,计数器只需要再加7次,但是&#34; s Down&#34;并且&#34;完成了#34;从未出现过第二次。此脚本附加到空项目中的空对象。我的编辑器版本是4.5.4

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

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

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