C# Input.GetKeyDown在Unity应用程序中无法正常工作

C# Input.GetKeyDown在Unity应用程序中无法正常工作,c#,unity3d,C#,Unity3d,我试图通过按键来切换UI选项,但它可以与UI按钮一起工作,但不能与Input.GetKeyDown命令一起工作 代码段位于从OnGui调用的函数中。“切换”切换一个布尔变量,该变量控制UI是否可见。然后,我进一步尝试通过单独的操作(向屏幕添加文本)使用切换,它似乎确实起作用,但每次按下都会出现6次(因此,即使在按下键后,UI仍保持关闭状态)。有关更多信息,整个UI位于不同的类中。该代码段位于公共静态函数中。该函数是从另一个活动类的OnGUI调用的 if (Input.GetKeyDown(Key

我试图通过按键来切换UI选项,但它可以与UI按钮一起工作,但不能与Input.GetKeyDown命令一起工作

代码段位于从OnGui调用的函数中。“切换”切换一个布尔变量,该变量控制UI是否可见。然后,我进一步尝试通过单独的操作(向屏幕添加文本)使用切换,它似乎确实起作用,但每次按下都会出现6次(因此,即使在按下键后,UI仍保持关闭状态)。有关更多信息,整个UI位于不同的类中。该代码段位于公共静态函数中。该函数是从另一个活动类的OnGUI调用的

if (Input.GetKeyDown(KeyCode.Space))
    {
        Telelog.Toggle = !Telelog.Toggle;
    }   
就像我用按钮做的一样,我希望当我按下空格键时UI会弹出。不能按预期工作。

每个帧可能被调用多次(每个事件一次调用)

因此,每帧调用它不止一次。在那里切换旗帜不是一个好主意
GetKeyDown
在帧结束时重置,因此该帧中对
OnGUI
的所有调用都将
true


最好在中进行切换。

每个帧可能被调用多次(每个事件一次调用)

因此,每帧调用它不止一次。在那里切换旗帜不是一个好主意
GetKeyDown
在帧结束时重置,因此该帧中对
OnGUI
的所有调用都将
true



最好在中切换。

您好,欢迎使用SO。请阅读,因为我们无法重现您的问题。请包括足够的肉,所以这是麦克维希,欢迎来到so。请阅读,因为我们无法重现您的问题。请包括足够的肉mcve@TejasNayak另外,停止使用OnGui。从4.6版开始,除了编辑器面板外,新的用户界面一直在贬值。非常感谢!我认为这可能是问题所在,但我太不确定了,无法采取行动。我会尽快更新它。@TejasNayak,停止使用OnGui。从4.6版开始,除了编辑器面板外,新的用户界面一直在贬值。非常感谢!我认为这可能是问题所在,但我太不确定了,无法采取行动。我会尽快更新它。