我能看到的UI效果,當我創建一個空的遊戲對象,附上腳本它包含下面的代碼,然後按下播放:OnGUI和鍵按下
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按下時的按鈕?
謝謝
閱讀文檔:http://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html'Input.GetKeyDown'需要從'Update'函數中調用,並在每個新的框架上重置。 –
它不需要從更新中調用,以像GUI事件那樣「需要」從OnGUI中調用,要知道在OnGUI中的KeyDown事件之後是否保留一個鍵的唯一方法是緩存KeyDown和KeyUp事件期間的值,或者在每個OnGUI調用中使用Input.GetKey。 –