using BlueWater.Interfaces; using UnityEngine; namespace BlueWater { public class StateMachineController where T : MonoBehaviour { private IStateMachine _currentState; public StateMachineController(T character, IStateMachine startState) { _currentState = startState; _currentState.EnterState(character); } public void UpdateState(T character) { _currentState.UpdateState(character); } public void TransitionToState(IStateMachine newState, T character) { _currentState.ExitState(character); _currentState = newState; _currentState.EnterState(character); } } }