using UnityEngine; namespace State { public class Machine : MonoBehaviour { private GameState _currentState; public void Update() { _currentState?.OnUpdate(Time.deltaTime); } public void FixedUpdate() { _currentState?.OnFixedUpdate(Time.fixedDeltaTime); } public void ChangeState(GameState newState) { _currentState?.OnExit(); _currentState = newState; _currentState.OnEnter(this); } } }