示例#1
0
        public void RequestSceneChange(SceneType SceneType, TransitionEffectType TransitionEffectType, object NextSceneParameter = null, float transitionWaitTime = 0f)
        {
            if (IsChangingScene)
            {
                return;
            }

            IsChangingScene = true;

            elapsedTime             = 0;
            this.transitionWaitTime = transitionWaitTime;

#if DEBUG
            DebugHandler.Instance.Clear();
#endif

            sceneTransitionThread      = PrepareSceneChangeThread(SceneType, NextSceneParameter);
            sceneTransitionThread.Name = $"{SceneType} transition thread";

            TransitionEffect = BuildTransition(TransitionEffectType, sceneTransitionThread.Start);

            if (TransitionEffectType == TransitionEffectType.None)
            {
                while (sceneTransitionThread.IsAlive)
                {
                    ;
                }
            }
        }
示例#2
0
        public void RequestSceneChange(SceneType SceneType, TransitionEffectType TransitionEffectType, Action Action)
        {
            if (IsChangingScene)
            {
                return;
            }

            IsChangingScene = true;
            //sceneHasChangedDraw = SceneHasChanged = false;
            TransitionEffect = BuildTransition(TransitionEffectType, Action);
        }