- Home /
Time.timeScale = 0; problems with buttons
Goodday dear reader,
I have a question, i am very new to C# and i am learning it at the moment. This question has been asked more often, but most probaly its because of my expierence of coding that i cannot solve it myself.
I have created a 'pause menu' for ingame, But the problem is when i pause, everything works correct, everything freezes like it should, but even all the functions froze, when going out of the menu the function is enabled. How do i make the function be enabled in freezing mode.
Beside that i also a second question, i made up a small delay to here a clicking sound when pushing the buttons, it feels for me that i used a pretty 'dirty' code for this and is there any option for a smaller and more compact code (i assume there must be) I dont ask to write me a code, but an advice what to use instead.
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;
using UnityStandardAssets.Characters.FirstPerson;
public class PauseGame : MonoBehaviour {
public Transform canvas;
public Transform Player;
public void ExitGame()
{
StartCoroutine("Wait");
}
IEnumerator Wait()
{
yield return new WaitForSeconds(0.200F);
Application.Quit();
}
public void Sceneload()
{
StartCoroutine("Wait1");
}
IEnumerator Wait1()
{
yield return new WaitForSeconds(0.200F);
SceneManager.LoadScene(1w);
}
void Update ()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
Pause();
}
}
public void Pause()
{
if (canvas.gameObject.activeInHierarchy == false)
{
canvas.gameObject.SetActive(true);
Time.timeScale = 0;
Player.GetComponent<FirstPersonController>().enabled = false;
}
else
{
canvas.gameObject.SetActive(false);
Time.timeScale = 1;
Player.GetComponent<FirstPersonController>().enabled = true;
}
}
}
Thank you very much in advance for your reply :)!!!!
Kind regards,
Alfred
Answer by Invertex · Jun 24, 2016 at 10:33 PM
WaitforSeconds will take forever when your Time.timeScale is 0. So your function never progresses to the LoadScene function. You need to decouple this from the game-time.
Here's a previous answer that has all the info you need: http://answers.unity3d.com/questions/957819/timescale-pause-combined-with-animated-ui.html
Your answer
Follow this Question
Related Questions
Time.timeScale doesnt work with GUI? 0 Answers
Another problems about Pause Menu 1 Answer
Game dosen't pause 1 Answer
Set Timescale to 0 for game, except for pause menu 2 Answers