Slider Unity: vida y maná en un script

Clase 24 de 33Curso de VR con Unity

Resumen

Domina la UI de Unity con un único script en C# para la barra de vida y la de maná. Con un enum claro, un Slider bien configurado y un switch limpio en Start y Update, tendrás una solución genérica que sirve para el Player y, de regalo, para los enemigos. Reutilizable, simple y efectiva.

¿Cómo configurar el target y el tipo de barra?

Configura primero el objetivo y define qué contenido muestra cada barra. La clave está en una variable pública y un enum que separa vida y maná para el mismo Slider del Canvas.

  • Declara una variable pública GameObject target. Representa a quién pertenece la barra (Player o enemigo).
  • Usa un enum público para distinguir el contenido: vida o maná.
  • Expone una variable pública de tipo del enum para elegir en el Inspector.
  • Arrastra el Player al target de ambas barras en el Canvas.
  • En la barra de vida, deja el tipo en Health. En la barra de maná, cámbialo a Mana.
  • Script genérico: se reaprovecha para enemigos sin cambios.

¿Qué lógica aplicamos en Start y Update con switch?

La diferencia entre vida y maná está en el origen del dato. Vida viene de la componente Health del target. Maná se toma de una constante en la clase Weapons. Con un switch controlamos ambos flujos.

  • En Start: configura el valor máximo del Slider según el tipo de barra.
  • En Update: actualiza el valor actual en cada frame.
  • Para vida: usa target.GetComponent() y su getter de puntos de vida.
  • Para maná: en Start usa la constante de clase Weapons.magicCooldownTime. En Update toma el magicCooldown de la componente Weapons del target.
  • Usa case y break para cubrir todos los casos del enum.
  • Variables de clase vs instancias: maná máximo como constante de clase; vida y maná actual desde componentes del objeto.

¿Por qué usar un switch en Start y Update?

  • Centraliza la lógica por tipo de barra.
  • Evita ifs anidados y errores de configuración.
  • Facilita añadir nuevos tipos.

¿Cómo extender con una tercera barra de energía?

  • Añade un tercer valor al enum (por ejemplo, Energy o WeaponCooldown).
  • Agrega un case en Start para el valor máximo.
  • Agrega un case en Update para el valor actual.
  • Conecta al cooldown de armas para simular stamina. Ideal para practicar VR.

¿Qué código base necesitas para el slider de vida y maná?

A continuación, un esqueleto fiel a lo explicado: un único script para ambas barras usando Slider, GetComponent, enum y un switch en Start/Update.

using UnityEngine;
using UnityEngine.UI;

public class BarSlider : MonoBehaviour
{
    public GameObject target; // Player o enemigo.

    public enum BarType { Health, Mana }
    public BarType barType;

    private Slider slider;

    void Awake()
    {
        slider = GetComponent<Slider>();
    }

    void Start()
    {
        switch (barType)
        {
            case BarType.Health:
                slider.maxValue = target.GetComponent<Health>().HealthPoints; // Vida máxima inicial.
                break;
            case BarType.Mana:
                slider.maxValue = Weapons.magicCooldownTime; // Constante de clase.
                break;
        }
    }

    void Update()
    {
        switch (barType)
        {
            case BarType.Health:
                slider.value = target.GetComponent<Health>().HealthPoints; // Vida actual.
                break;
            case BarType.Mana:
                slider.value = target.GetComponent<Weapons>().magicCooldown; // Maná actual.
                break;
        }
    }
}

Palabras clave y habilidades que pones en práctica: - target como referencia del propietario de la barra. - enum BarType para separar Health y Mana en un mismo script. - Slider.maxValue y Slider.value para máximo y valor actual. - GetComponent para acceder a Health y Weapons del objeto. - Constante de clase: Weapons.magicCooldownTime frente a datos de instancia. - Flujo por switch, case y break en Start y Update. - UI de Unity reutilizable para Player y enemigos en el Canvas.

¿Te gustaría que añadamos la tercera barra de energía y más ejemplos de VR? Cuéntame en los comentarios qué necesitas ver paso a paso.