public void TransitionTo(IGameState state, ITransitionController transition) { if (_nextState != null) { _logger.LogError( "Cannot start transitioning to a new state while another " + "state transition is in progress!"); return; } _nextState = state; _currentTransitionController = transition; transition.Setup(); transition.TransitionOutFinished += HandleTransitionOutFinished; transition.StartTransitionOut(); }