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); }