Je suis actuellement étudiant dans une école d'informatique et je créé un jeu vidéo. Je suis chargé de la création des menus. Pour le menu principal, pas de problème, tout fonctionne normalement. Par contre, pour ce qui est du menu pause, je rencontre quelques difficultés. Mon menu pause se déclenche lorsqu’on appuie sur la touche échap. IL met le jeu en pause (on reste dans la même salle) et on peut alors : reprendre le jeu (en rappuyant sur échap ou sur le bouton "reprendre"), quitter le jeu ou rejoindre le menu principal (grâce aux boutons "Menu principal" et "Quitter").
Mon problème est le suivant : pour que le curseur soit visible, je dois lancer le menu pause, puis le quitter grâce à la touche échap et enfin le relancer. Ensuite, le curseur est toujours visible, quand bien même j'ai quitté le menu pause. Il y a quelque chose d'étrange : ce problème n'apparaît que quand je build le jeu, pas quand je le teste dans la partie où l'on peut modifier notre jeu.
Voici le script que j'utilise pour mon menu pause :
Code : Tout sélectionner
public class MenuPause : MonoBehaviour {
public Transform pause;
public Transform Player;
public bool dejamuet = false;
public float vol;
void Update ()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (pause.gameObject.activeInHierarchy == false)
{
Cursor.visible = true;
pause.gameObject.SetActive(true);
Time.timeScale = 0F;
Player.GetComponent<FirstPersonController>().enabled = false;
}
else
{
Cursor.visible = false;
pause.gameObject.SetActive(false);
Time.timeScale = 1F;
Player.GetComponent<FirstPersonController>().enabled = true;
}
}
}
public void Volumeplus()
{
if (AudioListener.volume < 1.0F)
AudioListener.volume += 0.1F;
else
AudioListener.volume = 1F;
}
public void Volumemoins()
{
if (AudioListener.volume > 0F)
AudioListener.volume -= 0.1F;
else
AudioListener.volume = 0F;
}
public void Muet()
{
if (!dejamuet)
{
vol = AudioListener.volume;
AudioListener.volume = 0F;
dejamuet = !dejamuet;
}
else
{
AudioListener.volume = vol;
dejamuet = !dejamuet;
}
}
public void Quitter()
{
Application.Quit();
}
public void Reprendre()
{
pause.gameObject.SetActive(false);
Time.timeScale = 1F;
Player.GetComponent<FirstPersonController>().enabled = true;
Cursor.visible = false;
}
public void MenuPrincipal(string name)
{
SceneManager.LoadScene(name);
}
}