public void ChangeState(UnitState <T> changeState) { _prevState = _currentState; if (_currentState != null) { _currentState.ExitState(_owner); } _currentState = changeState; if (_currentState != null) { _currentState.EnterState(_owner); } }