2014-04-01 61 views
0

好吧我正在使用Unity C#(MonoDevelop),我正在学习如何从其他组件中提取组件变量。现在我明白如何做到这一点,但我想知道为什么当我开始游戏并按下“F”键时,它会打印出“Hello I am a cube”,并从CubeTalkPoints中减去至少3-5次。我希望它在每次按键时运行一次该代码。代码输出多次而不是一次(Unity C#)

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!"); 
    } 




} 

回答

2

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

相关问题