Una State Machine organiza comportamientos según estados.
Ejemplos:
Idle
Walk
Run
Jump
Attack
Dead
public enum PlayerState
{
Idle,
Walk,
Run,
Jump
}
private PlayerState estado;
void CambiarEstado(
PlayerState nuevoEstado)
{
estado = nuevoEstado;
}
switch (estado)
{
case PlayerState.Idle:
break;
case PlayerState.Run:
break;
}
Podés separar cada estado en su propia clase.
Ejemplo:
PlayerState
├── IdleState
├── RunState
├── JumpState
└── AttackState
Muy útil para: