Pause Menu Not Going Away
Script problem again. Tried for almost a week on figuring this out. The script I have for the Pause Menu does everything it needs to do except for close the Pause Menu after I press escape again. Here it is:
#pragma strict
var Canvas : GameObject;
function Update () {
if(Input.GetKeyDown("escape")){
Canvas.SetActive(true);
Cursor.visible = true;
if(Time.timeScale == 1.0)
Time.timeScale = 0.0;
}
else if (Canvas.SetActive == true)
Cursor.visible = true;
if(Time.timeScale == 0.0)
{
if(Input.GetKeyDown("escape")){
Canvas.SetActive(false);
Cursor.visible = false;
if(Time.timeScale == 0.0)
Time.timeScale = 1.0;
}
}
}
I think its because of your else if statement. If you do NOT press escape it will always excecute else if (Canvas.SetActive == true) Cursor.visible = true; if(Time.timeScale == 0.0) {
The current answer will solve all your problems. I just wanted to point you to the problems in your script:
Your first IF is always the one that is entered when the user presses ESC. You need to check the second if statement as well before doing anything.
The second if statement is wrong, it should be
if (Canvas.activeSelf)
as SetActive() is the setter method and does not return anything.
if (Input.Get$$anonymous$$eyDown("escape")) {
if (!Canvas.activeSelf)
Canvas.SetActive(true);
Cursor.visible = true;
Time.timeScale = 0.0;
} else {
Canvas.SetActive(false);
Cursor.visible = false;
Time.timeScale = 1.0;
}
}
Answer by amanpu · Aug 04, 2016 at 11:04 AM
Just avoid Code Duplication, your problem will eventually be solved.
function Update () {
if (Input.GetKeyDown("escape")){
Canvas.SetActive(!Canvas.activeSelf); // switch canvas state
Cursor.visible = !Cursor.visible; // switch visible state
SwitchTimeScale(); // switch timeScale
}
}
function SwitchTimeScale ()
{
if(Time.timeScale == 1.0){
Time.timeScale = 0.0;
} else {
Time.timeScale = 1.0;
}
}
Your answer
Follow this Question
Related Questions
GetComponent is not a member of Object 0 Answers
bullet holes parenting 1 Answer
Need a Script for Changing Scenes after pressing E to open locked door once a key has been found. 0 Answers
Can't access specific element in multidimensional array (JavaScript) 1 Answer
Do we still need to avoid foreach loops? 3 Answers