59 lines
2.0 KiB
C#
59 lines
2.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using UnityEngine.UI;
|
|
|
|
public class UIManager : MonoBehaviour {
|
|
[SerializeField] private GameObject gameOverPanel;
|
|
[SerializeField] private Text gameOverText;
|
|
[SerializeField] private Text restartText;
|
|
private bool isGameOver = false;
|
|
|
|
void Start() {
|
|
//Désactive le panneau et les textes si activés
|
|
gameOverPanel.SetActive(false);
|
|
gameOverText.gameObject.SetActive(false);
|
|
restartText.gameObject.SetActive(false);
|
|
}
|
|
|
|
void Update() {
|
|
|
|
if (Input.GetKeyDown(KeyCode.G) && !isGameOver)
|
|
{
|
|
isGameOver = true;
|
|
StartCoroutine(GameOverSequence());
|
|
}
|
|
//si le jeu est terminé et on saisit la touche R, le jeu est relancé
|
|
if (isGameOver) {
|
|
//If R is hit, restart the current scene
|
|
if (Input.GetKeyDown(KeyCode.R)) {
|
|
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
|
}
|
|
|
|
//la touche Q nous permet de sortir du jeu à tout moment
|
|
if (Input.GetKeyDown(KeyCode.Q)) {
|
|
print("Application Quit");
|
|
Application.Quit();
|
|
}
|
|
}
|
|
}
|
|
|
|
// Nouvelle méthode publique pour déclencher le game over
|
|
public void TriggerGameOver() {
|
|
if (!isGameOver) {
|
|
isGameOver = true;
|
|
StartCoroutine(GameOverSequence());
|
|
}
|
|
}
|
|
|
|
//la méthode GameOverSequence affiche le message GameOver puis attend 3 secondes et affiche le message "Press R to restart"
|
|
private IEnumerator GameOverSequence() {
|
|
gameOverPanel.SetActive(true);
|
|
gameOverText.gameObject.SetActive(true);
|
|
yield return new WaitForSeconds(3.0f);
|
|
gameOverText.text = "";
|
|
restartText.text = "Press R to restart";
|
|
restartText.gameObject.SetActive(true);
|
|
}
|
|
} |