Bonus
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 45 sur 50.
Défi
MoyenBonus. Conserve tout ce qui vient des leçons précédentes. Un cœur et un bouclier se trouvent dans l’arène, et les préfabriqués Heart et Shield sont prêts à être lâchés lors des vagues. Tout ce que le héros peut ramasser implémente une seule interface : le héros n’a donc jamais besoin de connaître les différents types.
IPickupdéclare une méthode,void Collect(Hero hero);.Heartl’implémente avecamount(2) défini dans l’Inspector : il soigne le héros deamountet se détruit.Shieldl’implémente avecduration(5) défini dans l’Inspector : il protège le héros de chaque coup pendantdurationsecondes et se détruit.Heroreçoitpublic void Heal(int amount), qui augmente la santé sans jamais dépassermaxHealthet affiche la santé dans les journaux comme lorsqu’il reçoit un coup ; un héros tombé n’est pas soigné. Il reçoitpublic void Protect(float seconds), qui le protège des coups jusqu’àsecondsà partir de maintenant, comme le faitsafeTimelorsqu’il reçoit un coup. Il reçoit aussiOnTriggerEnter: lorsque l’objet qu’il a touché possède unIPickup, il appelleCollect(this)dessus. Un CharacterController reçoit les messages de déclenchement sans Rigidbody.- Chaque
Wavereçoit unpublic GameObject reward. L’Inspector ne peut pas afficher un champ de type interface, le champ contient donc le préfabriqué sous forme de GameObject. Lorsqu’une vague est vaincue, avant le temps de repos, le spawner lâche la récompense de la vague, s’il y en a une, à sa propre position au centre de l’arène. L’asset attribue un Heart à la vague 1 et un Shield à la vague 2.
Appuie sur Play, termine une vague et ramasse sa récompense, puis clique sur Check.
Essayez vous-même
// Une leçon ultérieure complétera ceci : tout ce que le héros peut ramasser.
public interface IPickup
{
}
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