Ejemplo simple con vida, monedas y menú de pausa.
using TMPro;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class UIManager : MonoBehaviour
{
[Header("HUD")]
[SerializeField]
private Slider barraVida;
[SerializeField]
private TMP_Text textoVida;
[SerializeField]
private TMP_Text textoMonedas;
[Header("Pausa")]
[SerializeField]
private GameObject panelPausa;
[SerializeField]
private InputActionReference pauseAction;
private bool pausado;
void Update()
{
if (pauseAction.action.WasPressedThisFrame())
{
CambiarPausa();
}
}
public void ActualizarVida(
int actual,
int maxima)
{
barraVida.maxValue = maxima;
barraVida.value = actual;
textoVida.text =
$"{actual} / {maxima}";
}
public void ActualizarMonedas(int monedas)
{
textoMonedas.text =
monedas.ToString();
}
public void CambiarPausa()
{
pausado = !pausado;
panelPausa.SetActive(pausado);
Time.timeScale =
pausado ? 0f : 1f;
Cursor.visible = pausado;
Cursor.lockState =
pausado
? CursorLockMode.None
: CursorLockMode.Locked;
}
}
Time.timeScale;