OnGUI和Key Press

时间:2015-05-19 15:09:50

标签: c# user-interface unity3d

我可以在创建空游戏对象时看到UI结果,将包含以下代码的脚本附加到其中,然后按下播放:

public class OnGUI_test : MonoBehaviour
{
    void OnGUI ()
    {
            GUILayout.BeginArea(new Rect(10, 10, 100, 100));
            GUILayout.Button("Click me!");
            GUILayout.EndArea();
    }
}

但是,当我尝试添加代码以检查按键时,为什么以下操作不会运行?

public class OnGUI_test : MonoBehaviour
{
    void OnGUI ()
    {
        if ( Input.GetKeyDown( KeyCode.Escape ) )
        {
            GUILayout.BeginArea(new Rect(10, 10, 100, 100));
            GUILayout.Button("Click me");
            GUILayout.EndArea();
        }
    }
}

我做错了什么,如何在按下Esc时查看按钮?

谢谢

2 个答案:

答案 0 :(得分:1)

为了仅在按下退出按钮时绘制Gui元素,请检查Input.GetKey(KeyCode.Escape)然后它不会在每个帧上重置,并且在按下escape时将始终返回

答案 1 :(得分:1)

只需从Down移除GetKeyDown

如果你想在Escape印刷机之间保持不变,请在每个isPanelVisible上切换一个标志(类似GetKeyDown),然后在标志为真时绘制UI。