private void OpenInitialState()
        {
            /*if (PlayerHandler.Instance.Player.HasSeenIntroCutscene)
             *      InitialState = SceneStateByType (UIStateType.Menu);
             * else
             *      InitialState = SceneStateByType (UIStateType.Intro);*/

            CurrentState = InitialState;
            StartCoroutine(ChangeScene(InitialState.StateScene));
            FadePanel.gameObject.SetActive(true);
            FadePanel.alpha = 1;
            StartFadeBlackOut();

            /*_currentStateTransitionIndex = SceneStateTransitionByType(targetState);
             * if (_currentStateTransitionIndex == -1)
             * {
             *  Debug.Log("Target state " + targetState + " is not a valid transition from state " + CurrentState.State);
             *  return;
             * }
             *
             *          StartSwitchOutCurrentState();*/
        }
        private void StartSwitchingInNextState()
        {
            if (CurrentState.Transitions[_currentStateTransitionIndex].UseBlackFade)
            {
                StartFadeBlackOut(0.2f, 0f);
                onFadeBlackOutEnd += FinishFadingBlackOut;
                _runningTasks++;

                if (DebugOn)
                {
                    Debug.Log("StartSwitchingInNextState Fade +1: " + _runningTasks);
                }
            }

            CurrentState = CurrentState.Transitions[_currentStateTransitionIndex].TargetState;

            if (onEnterStateStart != null)
            {
                onEnterStateStart(CurrentState.State);
            }

            FinishSwitchingInNextState();
        }