I want to show and hide a GUI box by pressing the Esc key. Why doesn’t this script work?
#pragma strict
var IsPaused : boolean = false;
var Width = 250;
var Height = 300;
private var rect = Rect((Screen.width-Width)/2, (Screen.height-Height)/2, Width, Height);
function Start ()
{
IsPaused = false;
}
function Update ()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
Screen.showCursor = true;
IsPaused = true;
}
if (IsPaused)
{
if (Input.GetKeyDown(KeyCode.Escape))
{
Screen.showCursor = false;
IsPaused = false;
}
}
}
function OnGUI ()
{
if (IsPaused)
{
GUI.Box (rect, "Options");
}
}
This script should show the GUI box when I press Esc and set IsPaused to true. When IsPaused is true it should check if I press the Esc key again and close the GUI box. What it does is not bring the box up. I’m guessing it is because when IsPaused becomes true I still have the Esc key pressed for a second. I’m guessing the only ways to fix this is to either check GetKeyUp instead or to wait a second to check if IsPaused is true and then close the GUI box. Or is there another way???