je viens de créer un menu pause oui peut s'ouvrir avec "Echap" et se fermer avec soit "Echap", soit un clic gauche de la souris sur un bouton.
Le problème est que mon jeu se joue à la souris et lorsque je quitte le menu pause avec le clic de la souris, le timeScale repasse à 1 et ce clic déplace en même temps mon joueur.
J'aimerai donc faire un timer de 3s qui s'affiche à l'écran avant de reprendre, sauf que pendant le menu pause timeScale = 0, le timer que j'ai fait à besoin de l'écoulement du temps et si je repasse timeScale à 1 le timer fonctionne mais le jeux aussi..
Si ça peut aider, mon programme pour le menu pause :
Code : Tout sélectionner
public class PauseMenu : MonoBehaviour
{
public GameObject ui;
public GameManager gm;
public GameObject timerPause;
public float time = 0.01f;
public float timeToCharge = 0.01f;
public float timeCharging;
public bool chargingOk;
public void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
Toggle();
}
}
public void Toggle()
{
ui.SetActive(!ui.activeSelf);
if (ui.activeSelf)
{
Time.timeScale = 0f;
gm.isInputEnabled = false;
}
else
{
Time.timeScale = 1f;
timerPause.SetActive(true);
}
}
public void Retry()
{
Toggle();
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
public void MainMenu()
{
Debug.Log("Chargement du menu ...");
}
}
Code : Tout sélectionner
public class TimerPauseMenu : MonoBehaviour
{
public GameObject timer;
public GameManager gm;
public float time = 3f;
public Text timerText;
public int timeInt;
public void Update()
{
timeInt = Mathf.RoundToInt(time);
timerText.text = ("" + timeInt + "");
if(time >= 0)
{
time -= Time.deltaTime;
}
else
{
gm.isInputEnabled = true;
//Time.timeScale = 1f;
timer.SetActive(false);
}
}
}