| | |
| | | {
|
| | | public StageName currentStage;
|
| | |
|
| | | public Action AfterLoadingGameScene;
|
| | |
|
| | | public Action BeforeLoadingGameScene;
|
| | |
|
| | | // public Action OnSwitchAccount;
|
| | | private LaunchWinData launchWinData = null;
|
| | |
|
| | | public void Init()
|
| | | {
|
| | |
|
| | | UIManager.Instance.OnCloseWindow += OnCloseWindow;
|
| | | }
|
| | |
|
| | | public void Release()
|
| | | {
|
| | |
|
| | | AfterLoadingGameScene = null;
|
| | | BeforeLoadingGameScene = null;
|
| | | UIManager.Instance.OnCloseWindow -= OnCloseWindow;
|
| | | }
|
| | |
|
| | | public async UniTaskVoid ToLoginScene()
|
| | |
| | |
|
| | | AsyncOperation asyncOperation = SceneManager.LoadSceneAsync("Login");
|
| | |
|
| | | await OnLoading(asyncOperation, ConfigManager.Instance.GetLoadingProgress);
|
| | | await OnLoading(asyncOperation, ConfigManager.Instance.GetLoadingProgress, Main.InitManagers);
|
| | |
|
| | | Main.OnSwitchToLoginScene();
|
| | |
|
| | | currentStage = StageName.Login;
|
| | |
|
| | | UIManager.Instance.OpenWindow<LaunchBackGroundWin>();
|
| | | UIManager.Instance.OpenWindow<LoginWin>();
|
| | | }
|
| | |
|
| | |
| | | public async UniTaskVoid ToGameScene()
|
| | | {
|
| | | UIManager.Instance.DestroyAllUI();
|
| | | |
| | | BeforeLoadingGameScene?.Invoke();
|
| | |
|
| | | ResManager.Instance.PrewarmResources();
|
| | | // ResManager.Instance.PrewarmResources();
|
| | |
|
| | | AsyncOperation asyncOperation = SceneManager.LoadSceneAsync("Game");
|
| | |
|
| | | await OnLoading(asyncOperation, GetManagerRequestDataProgress);
|
| | | await OnLoading(asyncOperation, () => (DTC0403_tagPlayerLoginLoadOK.finishedLogin ? .5f : 0f) + GetManagerRequestDataProgress() * .5f);
|
| | |
|
| | | // 加载初始化数据完成
|
| | | currentStage = StageName.Game;
|
| | |
|
| | | Main.OnEnterGameScene();
|
| | |
|
| | | AfterLoadingGameScene?.Invoke();
|
| | |
|
| | | UIManager.Instance.OpenWindow<MainWin>();
|
| | | }
|
| | |
| | | asyncOperation.allowSceneActivation = false;
|
| | |
|
| | | LoadingWin loadingWin = UIManager.Instance.OpenWindow<LoadingWin>();
|
| | |
|
| | | LaunchWin launchWin = UIManager.Instance.GetUI<LaunchWin>();
|
| | | if (null != launchWin && launchWin.IsActive() && launchWinData == null)
|
| | | {
|
| | | launchWinData = launchWin.GetData();
|
| | | }
|
| | |
|
| | | if (null != launchWinData)
|
| | | {
|
| | | loadingWin.SetData(launchWinData);
|
| | | launchWinData = null;
|
| | | }
|
| | |
|
| | | while (!asyncOperation.isDone)
|
| | | {
|
| | |
| | |
|
| | | loadingWin.CloseWindow();
|
| | | }
|
| | |
|
| | | private void OnCloseWindow(UIBase closeUI)
|
| | | {
|
| | | if (closeUI is LaunchWin)
|
| | | {
|
| | | launchWinData = (closeUI as LaunchWin).GetData();
|
| | | }
|
| | | }
|
| | | } |