Menu
CoddyTech

Bonus

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

challenge icon

Défi

Moyen

Bonus. 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.

  • IPickup déclare une méthode, void Collect(Hero hero);.
  • Heart l’implémente avec amount (2) défini dans l’Inspector : il soigne le héros de amount et se détruit.
  • Shield l’implémente avec duration (5) défini dans l’Inspector : il protège le héros de chaque coup pendant duration secondes et se détruit.
  • Hero reçoit public void Heal(int amount), qui augmente la santé sans jamais dépasser maxHealth et affiche la santé dans les journaux comme lorsqu’il reçoit un coup ; un héros tombé n’est pas soigné. Il reçoit public void Protect(float seconds), qui le protège des coups jusqu’à seconds à partir de maintenant, comme le fait safeTime lorsqu’il reçoit un coup. Il reçoit aussi OnTriggerEnter : lorsque l’objet qu’il a touché possède un IPickup, il appelle Collect(this) dessus. Un CharacterController reçoit les messages de déclenchement sans Rigidbody.
  • Chaque Wave reçoit un public 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