Je viens de commencer à toucher à unity (depuis 2 mois) et j'ai décidé de faire un subway surfer pour m'entrainer. J'ai décidé d'ajouter un système de ralenti grâce à un bonus en utilisant la ligne :
Time.timeScale = 0.5fCependant comme le menu pause utilise aussi le timeScale lorsque j'utilise le bonus (et donc mon temps va à 0.5f) puis pause il va à 0. Puis en rappuyant sur le jeu, il repasse à 1f.
Pour résoudre se problème j'ai utilisé un
Code : Tout sélectionner
TempsRalenti tempsRalenti;
void Start()
{
obstacles = Object.FindFirstObjectByType<Obstacles>();
tempsRalenti = Object.FindFirstObjectByType<TempsRalenti>();
}
void Update()
{
Debug.Log("Avant le if : " + tempsRalenti.isXPressed);
if (Input.GetKeyDown(KeyCode.Escape) && !obstacles.Death && [highlight=yellow]tempsRalenti.isXPressed[/highlight])
{
Debug.Log("isXpressed is true = " + tempsRalenti.isXPressed);
if (!inPause)
{
panelPause.SetActive(true);
Time.timeScale = 0f; // Mettre le temps à l'arrêt
inPause = true;
}
else
{
panelPause.SetActive(false);
Time.timeScale = 0.5f;
inPause = false;
}
}
else if(Input.GetKeyDown(KeyCode.Escape) && !obstacles.Death)
{
Debug.Log("isXpressed is true = " + tempsRalenti.isXPressed);
if (!inPause)
{
panelPause.SetActive(true);
Time.timeScale = 0f; // Mettre le temps à l'arrêt
inPause = true;
}
else
{
panelPause.SetActive(false);
Time.timeScale = 1f;
inPause = false;
}
}
Sachant que la variable est bien défini dans tempsRalenti :
Code : Tout sélectionner
public bool isXPressed = false;
private void Start()
{
imageTemps.SetActive(true);
}
public void Update()
{
imageTemps.SetActive(true);
if (Input.GetKeyDown(KeyCode.X) && !isXPressed)
{
[highlight=yellow] isXPressed = true;[/highlight]
Debug.Log("Temps ralenti" + isXPressed);
StartCoroutine(ResetSpeed());
Time.timeScale = 0.5f;
CubeControl.speed *= 2;
}
}
public IEnumerator ResetSpeed()
{
yield return new WaitForSeconds(3f);
CubeControl.speed /= 2;
Time.timeScale = 1f;
Debug.Log("Temps ralenti");
isXPressed = false;
imageTemps.SetActive(false);
Temps.SetActive(false);
}
}
Merci.