La fin de la nuit
Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 60 sur 60.
Le dernier défi permet de terminer un jeu complet : un gestionnaire avec des états, une pause qui arrête le temps, deux fins et un redémarrage qui réinitialise l’échelle de temps.
Défi
DifficileAjoute une pause, deux fins et un redémarrage.
pauseButtonbascule uniquement entre Playing et Paused : Paused règleTime.timeScalesur 0 et affichepausePanel, tandis que Playing annule ces deux effets.- À 0 seconde, la nuit est Won. En cas de victoire ou de défaite : l’échelle de temps est réglée sur 0,
endPanels’affiche avecYou survived the night!ouThe bats got youdansendText. restartButtonrègle l’échelle de temps sur 1 et recharge la scène.
Appuie sur « Jouer », mets en pause, perds, puis rejoue. Ensuite, appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
public class GameManager : MonoBehaviour
{
public enum State { Playing, Paused, Won, Lost }
public static GameManager Instance;
public float nightLength = 15f;
public float spawnEvery = 2f;
public GameObject batPrefab;
public Transform[] spawnPoints;
public TMP_Text dawnText;
public Button pauseButton;
public GameObject pausePanel;
public GameObject endPanel;
public TMP_Text endText;
public Button restartButton;
public State state;
private float timeLeft;
private float spawnTimer;
void Awake()
{
Instance = this;
}
void Start()
{
state = State.Playing;
timeLeft = nightLength;
ShowDawn();
}
void Update()
{
if (state != State.Playing) return;
timeLeft -= Time.deltaTime;
spawnTimer += Time.deltaTime;
if (spawnTimer >= spawnEvery)
{
spawnTimer -= spawnEvery;
Transform point = spawnPoints[Random.Range(0, spawnPoints.Length)];
Instantiate(batPrefab, point.position, Quaternion.identity);
}
ShowDawn();
}
public void Lose()
{
if (state != State.Playing) return;
state = State.Lost;
}
void ShowDawn()
{
dawnText.text = "Dawn in " + Mathf.CeilToInt(timeLeft);
}
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Créer de vrais jeux
1Texte à l’écran
Canvas et texteAfficher le scoreFormater les nombresUn compte à reboursRécapitulatif : compteur de vitesse4Scènes et niveaux
Charger une scèneRedémarrer le niveauNiveau suivantConserver entre les scènesRécapitulatif : sélection du niveau2Boutons et écrans
Boutons et onClickLambdasRelier les éléments dans l’InspectorActiver et désactiver les panneauxBarres de santéRécapitulatif : boutique d’améliorations5Sauvegarder avec PlayerPrefs
Enregistrer un nombreCharger avec une valeur par défautMeilleur scoreEnregistrer les paramètresRécapitulatif : les pièces à la banqueEntraînez-vous par vous-même : Playground Unity