Menu
CoddyTech

L’interface de jeu

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

challenge icon

Défi

Moyen

Un HUD qui se contente d’écouter. Conservez tout ce qui vient des leçons précédentes. Le canevas, nommé HUD, comporte une barre de santé (HealthFill, une image remplie), HealthText et WaveText, ainsi que votre script HUD, avec hero, spawner, healthBar, healthText et waveText configurés dans l’Inspector. Le HUD ne demande jamais rien au héros ni au spawner : ils annoncent leurs changements avec des événements C#, et le HUD affiche ce qu’il entend.

  • Hero reçoit public event Action<int, int> HealthChanged, déclenché avec la santé et maxHealth dans Start, ainsi que chaque fois qu’un coup ou un soin modifie la santé.
  • WaveSpawner reçoit public event Action<int> WaveStarted, déclenché avec le numéro de la vague lorsqu’une vague commence.
  • HUD s’abonne aux deux dans OnEnable et se désabonne dans OnDisable. Lors de HealthChanged, il remplit la barre selon la proportion de santé restante et affiche la santé sous la forme HP 3/5. Lors de WaveStarted, il affiche Wave 2. Il n’a pas de Update.

Déclenchez HealthChanged dans Start, et non dans Awake : le OnEnable de chaque objet s’exécute avant le Start de tous les objets, donc le HUD écoute déjà à ce moment-là. Appuyez sur Play et observez le HUD pendant que vous combattez, puis cliquez sur Check.

Essayez vous-même

using UnityEngine;

public class HUD : MonoBehaviour
{
    // Une leçon ultérieure complétera ceci : la santé et la vague à l’écran.
}

Toutes les leçons de Architecture de jeu dans Unity