代码输出多次而不是一次(Unity C#)

时间:2014-04-01 18:56:35

标签: c#-4.0 unity3d monodevelop

好的我正在使用Unity C#(MonoDevelop),我正在学习如何从其他组件中提取组件变量。现在我明白了怎么做,但我想知道为什么当我开始游戏并按下" F"关键它打印"你好我是一个立方体"并从CubeTalkPoints中减去至少3-5次。我希望每按一次键运行一次代码。

void Update () {

    if(Input.GetKey(KeyCode.F)) 
        C_Talk(0);


}

void C_Talk(int SpellID = 0, int TalkPoint = 1)
{
    CubeData CubeSub = GetComponent<CubeData>();

    if (CubeSub.CubeTalkPoints >= TalkPoint) 
    {
        CubeSub.CubeTalkPoints -= TalkPoint;

        Debug.Log("Hello I am a Cube!");
    }




}

1 个答案:

答案 0 :(得分:2)

使用GetKeyDown()而不是GetKey()。 GetKeyDown()仅在按钮关闭的第一帧时为true。只要按下按钮,GetKey()在每一帧都是真的。