Podés cambiar la velocidad del personaje según el estado.
[SerializeField]
private float velocidadCaminar = 4f;
[SerializeField]
private float velocidadCorrer = 7f;
bool corriendo =
sprintAction.action.IsPressed();
float velocidadActual =
corriendo
? velocidadCorrer
: velocidadCaminar;
controller.Move(
direccion * velocidadActual * Time.deltaTime
);
if (corriendo && energia > 0f)
{
energia -= consumo * Time.deltaTime;
}
bool seMueve =
direccion.sqrMagnitude > 0.01f;
bool corriendo =
sprintAction.action.IsPressed() &&
seMueve;
float velocidad =
sprint
? velocidadCorrer
: velocidadCaminar;