protected abstract void StateUpdate(T state, BasicStateMachine <T> stateMachine);
 protected abstract void StateChange(T currentState, T lastState, BasicStateMachine <T> stateMachine);
 private void Awake()
 {
     _stateMachine = new BasicStateMachine <T>(StateChange, StateUpdate);
 }