Menu
CoddyTech

La interfaz de usuario

Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 46 de 50.

challenge icon

Desafío

Intermedio

Un HUD que solo escucha. Conserva todo lo de las lecciones anteriores. El lienzo, llamado HUD, tiene una barra de salud (HealthFill, una imagen Filled), HealthText y WaveText, además del script HUD, con hero, spawner, healthBar, healthText y waveText configurados en el Inspector. El HUD nunca les pregunta nada al héroe ni al spawner: anuncian sus cambios mediante eventos de C#, y el HUD muestra lo que escucha.

  • Hero obtiene public event Action<int, int> HealthChanged, que se activa con la salud y maxHealth en Start, y cada vez que un golpe o una curación cambia la salud.
  • WaveSpawner obtiene public event Action<int> WaveStarted, que se activa con el número de la oleada cuando esta empieza.
  • HUD se suscribe a ambos en OnEnable y cancela la suscripción en OnDisable. Cuando ocurre HealthChanged, llena la barra según la proporción de salud restante y muestra la salud como HP 3/5. Cuando ocurre WaveStarted, muestra Wave 2. No tiene Update.

Activa HealthChanged en Start, no en Awake: el OnEnable de todos los objetos se ejecuta antes que cualquier Start, así que para entonces el HUD ya está escuchando. Pulsa Play y observa el HUD mientras luchas; después, pulsa Check.

Pruébalo tú mismo

using UnityEngine;

public class HUD : MonoBehaviour
{
    // Una lección posterior completará esto: la salud y la oleada en pantalla.
}

Todas las lecciones de Arquitectura de juegos en Unity