Menu
CoddyTech

Das HUD

Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 46 von 50.

challenge icon

Aufgabe

Mittel

Ein HUD, das nur zuhört. Behalte alles aus den früheren Lektionen bei. Der Canvas namens HUD enthält eine Gesundheitsleiste (HealthFill, ein gefülltes Bild), HealthText und WaveText sowie dein HUD-Skript, in dem hero, spawner, healthBar, healthText und waveText im Inspector festgelegt sind. Das HUD fragt weder den Helden noch den Spawner nach irgendetwas: Sie kündigen ihre Änderungen mit C#-Ereignissen an, und das HUD zeigt, was es hört.

  • Hero erhält public event Action<int, int> HealthChanged, das in Start mit der Gesundheit und maxHealth ausgelöst wird sowie immer dann, wenn ein Treffer oder eine Heilung die Gesundheit verändert.
  • WaveSpawner erhält public event Action<int> WaveStarted, das beim Start einer Welle mit deren Nummer ausgelöst wird.
  • HUD abonniert beide Ereignisse in OnEnable und meldet sich in OnDisable wieder ab. Bei HealthChanged füllt es die Leiste entsprechend dem verbleibenden Gesundheitsanteil und zeigt die Gesundheit als HP 3/5 an. Bei WaveStarted zeigt es Wave 2 an. Es hat kein Update.

Löse HealthChanged in Start aus, nicht in Awake: Das OnEnable aller Objekte wird ausgeführt, bevor irgendein Start ausgeführt wird, sodass das HUD bis dahin zuhört. Drücke Play und beobachte das HUD während des Kampfes, dann Check.

Probier es selbst

using UnityEngine;

public class HUD : MonoBehaviour
{
    // In einer späteren Lektion wird dies ergänzt: Gesundheit und Welle auf dem Bildschirm.
}

Alle Lektionen in Spielarchitektur in Unity