예제 #1
0
        private void AppStateChange()
        {
            var state = AppStateMachine.OldState;

            if (SceneTransitions.ContainsKey(state) && SceneTransitions[state] != null && !string.IsNullOrEmpty(SceneTransitions[state].SceneName))
            {
                SceneTransitionStateMachine.Fire(SceneTransitionState.TransitionFrom);
            }
        }
예제 #2
0
        protected virtual void Init()
        {
            AppStateMachine.Fire(State);

            if (SceneTransitionStateMachine.CurrentState != SceneTransitionState.Idle)
            {
                SceneTransitionStateMachine.Fire(SceneTransitionState.TransitionTo);
            }
        }
예제 #3
0
        private void Awake()
        {
            DontDestroyOnLoad(gameObject);
            DependencyManager.AddDependency <SceneManager>(this);
            SceneTransitions = SceneTransitionsInitial.GetDictionary();

            AppStateMachine.Subscribe(AppState.SceneLoading, AppStateChange);

            SceneTransitionStateMachine.Subscribe(SceneTransitionState.Loading, TransitScene);
        }
예제 #4
0
 private void OnDestroy()
 {
     SceneTransitionStateMachine.Unsubscribe(this);
 }