- Home /
Time.timeScale = 0 breaks my GUI.
Hi,
I've been banging against this for a while now, I have googled around and can't seem to find a fix. I have seen a lot of threads, none helped.
I want to pause my game, show a menu, and then have a resume button on that menu. I have all this but the resume button won't work when Time.timeScale is set to zero, if it set it to 0.1 it works, but obviously the game is not paused. This is my code.
public Canvas pauseMenu;
void Awake()
{
pauseMenu.enabled = false;
}
void Update()
{
if (Input.GetAxis("Pause") > 0)
{
PauseOn();
}
}
public void PauseOn()
{
Time.timeScale = 0.0f;
pauseMenu.enabled = true;
}
public void ResumeOn()
{
Time.timeScale = 1.0f;
pauseMenu.enabled = false;
}
public void QuitOn()
{
Application.Quit();
}
You can see in the update method, I pause time if the pause button is pressed. I then use the button on the GUI to trigger the ResumeOn() method.
My button works if I click outside the game, then back into it. This counts for both in editor and built versions.
I posted this in the forum and the thread was locked before i really made any progress.
O$$anonymous$$, so after more messing about, I made it work by accessing the key info, not the axis info. So it doesn't take my custom named input "Pause" it takes "escape".
if (Input.GetAxis("Pause") > 0)
//changes to
if (Input.Get$$anonymous$$eyDown("escape") )
I would much rather have a solution that allows me to set custom bindings, and change them, so I don't have to rewrite code if I want to change the pause key. At least this shows there is no logical error with the code.
Your answer
Follow this Question
Related Questions
Timer Pause 1 Answer
Creation of a Pause and a Console Menu? 2 Answers
GUI Button appears when Paused 1 Answer