好的我正在使用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!");
}
}
答案 0 :(得分:2)
使用GetKeyDown()而不是GetKey()。 GetKeyDown()仅在按钮关闭的第一帧时为true。只要按下按钮,GetKey()在每一帧都是真的。