L’HUD
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 46 di 50.
Sfida
MedioUn HUD che ascolta soltanto. Mantieni tutto ciò che hai realizzato nelle lezioni precedenti. Il canvas, chiamato HUD, ha una barra della salute (immagine Filled HealthFill), HealthText e WaveText, e lo script HUD, con hero, spawner, healthBar, healthText e waveText impostati nell'Inspector. L'HUD non chiede mai nulla all'eroe o allo spawner: questi annunciano le proprie modifiche con gli eventi C#, e l'HUD mostra ciò che sente.
Heroottienepublic event Action<int, int> HealthChanged, che viene invocato con la salute emaxHealthinStarte ogni volta che un colpo o una cura modifica la salute.WaveSpawnerottienepublic event Action<int> WaveStarted, che viene invocato con il numero dell'ondata quando questa inizia.HUDsi iscrive a entrambi gli eventi inOnEnablee annulla l'iscrizione inOnDisable. Quando riceveHealthChanged, riempie la barra in proporzione alla salute rimasta e mostra la salute comeHP 3/5. Quando riceveWaveStarted, mostraWave 2. Non ha unUpdate.
Invoca HealthChanged in Start, non in Awake: il metodo OnEnable di ogni oggetto viene eseguito prima di qualsiasi Start, quindi a quel punto l'HUD è già in ascolto. Premi Play e osserva l'HUD mentre combatti, poi premi Check.
Provalo tu
using UnityEngine;
public class HUD : MonoBehaviour
{
// Una lezione successiva completerà questa parte: salute e ondata sullo schermo.
}
Tutte le lezioni di Architettura dei giochi in Unity
1Componenti, non gerarchie
Componenti piccoliUno script base per i nemiciComponenti astrattiComponenti che collaboranoRiepilogo: torretta modulare4Dati serializzati
Classi serializzabiliListe nell'InspectorEnum nell'InspectorRiepilogo: tabella del bottino7Macchine a stati
Gli stati come classiUna macchina a statiTransizioniIntelligenze dei nemiciRiepilogo: stati della porta10Progetto: Sopravvissuto nell’arena
L’eroeTipi di nemici5ScriptableObjects
Asset di datiStatistiche delle armiImpostazioni condiviseOndate come datiRiepilogo: database degli oggetti