static async Task Loading(Type sceneType) { string sceneName = sceneType.Name.Replace("Scene", ""); if (string.IsNullOrEmpty(sceneName)) { GameLog.LogErrorFormat("Failed to load scene {0}({1})", sceneName, sceneType.Name); onSceneLoaded = null; return; } await ScreenFader.AsyncFade(true); if (null != current) { current.OnDestroy(); } current = null; // UI.Instance.ClosePanelsWhenSceneDestroy(); await SceneLoader.AsyncLoad(sceneName); current = (IScene)Activator.CreateInstance(sceneType); current.Start(); if (null != onSceneLoaded) { onSceneLoaded(); } onSceneLoaded = null; await ScreenFader.AsyncFade(false); }
async Task SwitchingPage(int to, Delegate onPageShow) { switchingPage = true; await ScreenFader.AsyncFade(true); pages[pageIndex].Close(); pages[to].Visible = true; pageIndex = to; if (null != onPageShow) { onPageShow.DynamicInvoke(pages[to]); } await ScreenFader.AsyncFade(false); switchingPage = false; }