Survivre
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 47 sur 50.
Défi
MoyenDerniè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.
Heroreçoitpublic 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]BestRunavecpublic int waveetpublic int kills. GameManagerécouteDieddu héros etEnemy.Died, qui compte les éliminations de cette partie : abonne-toi dansOnEnable, désabonne-toi dansOnDisable. DansStart, il charge le meilleur résultat depuisbest.jsondansApplication.persistentDataPathavecJsonUtility, si ce fichier existe, masque le panneau et configurerestartButtonpour redémarrer le jeu.- Quand le héros meurt, arrête le jeu (
Time.timeScale0). Le résultat de la partie correspond à laWavedu 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é dansbest.jsonavecJsonUtility.ToJson. Affiche le résultat dansresultText, sous la formeWave 2, 7 kills, et le meilleur résultat dansbestText, sous la formeBest: 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
1Des composants, pas des hiérarchies
Des composants simplesUn script de base pour les ennemisDes composants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaire4Données sérialisées
Classes sérialisablesListes dans l’inspecteurÉnumérations dans l’inspecteurRécapitulatif : table de butin7Machines à états
Les états sous forme de classesUne machine à étatsTransitionsLes cerveaux des ennemisRécapitulatif : états d’une porte10Projet : Survivant de l’arène
Le hérosTypes d’ennemis2Interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interaction5ScriptableObjects
Assets de donnéesStatistiques des armesParamètres partagésLes vagues sous forme de donnéesRécapitulatif : base de données d’objets