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

时间:2019-06-25 15:23:40

标签: c# unity3d

我试图在按键的帮助下切换UI选项,尽管它可以使用UI按钮,但不能使用Input.GetKeyDown命令。

该代码段位于从OnGui调用的函数中。 “切换”切换一个布尔变量,该布尔变量控制UI是否可见。然后,我进一步尝试将拨动开关用于单独的操作(在屏幕上添加文本),它似乎确实起作用,但是每次按一下它恰好发生6次(因此,即使在按键后UI仍处于关闭状态。)信息,整个用户界面位于不同的类中。该代码段位于公共静态函数中。该函数是从另一个活动类的OnGUI调用的。

if (Input.GetKeyDown(KeyCode.Space))
    {
        Telelog.Toggle = !Telelog.Toggle;
    }   

就像我用按钮执行完全相同的操作一样,我希望在按下空格键时会弹出UI。不能按预期工作。

1 个答案:

答案 0 :(得分:2)

OnGUI

  

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

因此每帧被多次调用。在此处切换标志不是一个好主意。 GetKeyDown在帧末尾被重置,因此该帧中对true的所有调用都将为OnGUI


最好在Update中进行切换。