Пример #1
0
        } // PopScreen

        public void ScreenAwake(UIScreenManager screen, Option <IScreenArguments> screenArgs)
        {
            this._currentScreen = screen;
#if PANELS_DEBUG_ON
            Debug.Log(string.Format("[ScreenAwake] scene '{0}'", screen.gameObject.scene.name));
#endif
            if (this._argumentsStack.Count == 0)
            {
                this.Init();
            }

            if (screen.backgroundScreen == ScreensName.None && this._currentBackgroundScene != ScreensName.None)
            {
                SceneManager.UnloadSceneAsync(SceneManager.GetSceneByName(this._currentBackgroundScene.ToString()));
                this._currentBackgroundScene = ScreensName.None;
            }
            if (screen.backgroundScreen != ScreensName.None)
            {
                if (this._currentBackgroundScene != ScreensName.None && this._currentBackgroundScene != screen.backgroundScreen)
                {
                    // remove old background
                    SceneManager.UnloadSceneAsync(SceneManager.GetSceneByName(this._currentBackgroundScene.ToString()));
                    this._currentBackgroundScene = ScreensName.None;
                }
                if (screen.backgroundScreen != ScreensName.None && screen.backgroundScreen != this._currentBackgroundScene)
                {
                    // create new background
                    SceneManager.LoadSceneAsync(screen.backgroundScreen.ToString(), LoadSceneMode.Additive);
                    this._currentBackgroundScene = screen.backgroundScreen;
                }
            }

            // fade in
            if (screen.rootCanvasGroup != null && screen.fadeInTime > 0)
            {
                screen.rootCanvasGroup.alpha = 0.0f;
                DOTween.To(() => screen.rootCanvasGroup.alpha, (x) => screen.rootCanvasGroup.alpha = x, 1.0f, screen.fadeInTime);
            }

            if (this._argumentsStack.Count == 0)
            {
                this.PushArgumentsInStack(new ArgumentsStackItem <IScreenArguments>(screen.gameObject.scene.name, screenArgs));
            }
            if (this.CurrentScreenArguments.IsNone && screenArgs.IsSome)
            {
                this.CurrentScreenArguments = screenArgs;
            }
        } // ScreenAwake
Пример #2
0
 public void SetScreen(ScreensName screenName)
 {
     this.SetScreen(screenName.ToString(), Option <IScreenArguments> .None);
 }
Пример #3
0
 public void PushScreen(ScreensName screenName, Option <IScreenArguments> args)
 {
     this.PushScreen(screenName.ToString(), args);
 }