} // 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
public void SetScreen(ScreensName screenName) { this.SetScreen(screenName.ToString(), Option <IScreenArguments> .None); }
public void PushScreen(ScreensName screenName, Option <IScreenArguments> args) { this.PushScreen(screenName.ToString(), args); }