Menu
CoddyTech

Survivre

Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 47 sur 50.

challenge icon

Défi

Moyen

Dernière étape : la partie se termine et le meilleur résultat est conservé. Garde tout ce qui vient des leçons précédentes. Le canevas contient un GameOverPanel masqué avec ResultText, BestText et un RestartButton portant le libellé Fight again, et l’objet GameManager possède ton script GameManager, avec hero, spawner, gameOverPanel, resultText, bestText et restartButton configurés dans l’Inspector.

  • Hero reçoit public event Action Died, déclenché lorsque sa santé atteint 0, après qu’il se désactive.
  • Dans GameManager.cs, ajoute une classe [System.Serializable] BestRun avec public int wave et public int kills.
  • GameManager écoute Died du héros et Enemy.Died, qui compte les éliminations de cette partie : abonne-toi dans OnEnable, désabonne-toi dans OnDisable. Dans Start, il charge le meilleur résultat depuis best.json dans Application.persistentDataPath avec JsonUtility, si ce fichier existe, masque le panneau et configure restartButton pour redémarrer le jeu.
  • Quand le héros meurt, arrête le jeu (Time.timeScale 0). Le résultat de la partie correspond à la Wave du spawner et au nombre d’éliminations. C’est un nouveau record si la vague atteinte est supérieure, ou si c’est la même vague avec plus d’éliminations : il devient alors le meilleur résultat et est enregistré dans best.json avec JsonUtility.ToJson. Affiche le résultat dans resultText, sous la forme Wave 2, 7 kills, et le meilleur résultat dans bestText, sous la forme Best: wave 3, 12 kills, puis affiche le panneau.
  • Le redémarrage rétablit l’échelle de temps à 1 et recharge la scène.

Appuie sur Play et combats jusqu’à ta défaite, puis essaie de battre ton record. Ensuite, Check.

Essayez vous-même

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Une leçon ultérieure complétera cette partie : la fin de la partie et la meilleure partie.
}

Toutes les leçons de Architecture de jeu dans Unity