From 1ab047b5fdd933c38ba0519ec2e83a44512ea8d7 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 17:46:11 +0800
Subject: [PATCH] webgl代码合并 1
---
Main/Manager/StageManager.cs | 83 ++++++++++++++++++++---------------------
1 files changed, 41 insertions(+), 42 deletions(-)
diff --git a/Main/Manager/StageManager.cs b/Main/Manager/StageManager.cs
index 861d9f1..43ecc22 100644
--- a/Main/Manager/StageManager.cs
+++ b/Main/Manager/StageManager.cs
@@ -42,15 +42,7 @@
LoadingWin loadingWin = await UIManager.Instance.OpenWindowAsync<LoadingWin>();
InitLoadingWinData(loadingWin);
- // Phase 1 (0% ~ 30%): YooAsset resource preload
- if (AssetSource.isUseAssetBundle)
- {
- loadingWin.SetProgress(0.05f);
- await YooAssetService.Instance.LoadAllAssetsAsync<UnityEngine.Object>("Assets/ResourcesOut/Scenes/Login");
- loadingWin.SetProgress(0.3f);
- }
-
- // Phase 2 (30% ~ 60%): Scene loading
+ // Phase 1 (0% ~ 60%): Scene loading
AsyncOperation asyncOperation = SceneManager.LoadSceneAsync("Login");
asyncOperation.allowSceneActivation = false;
@@ -60,12 +52,12 @@
{
asyncOperation.allowSceneActivation = true;
}
- loadingWin.SetProgress(0.3f + asyncOperation.progress * 0.3f);
+ loadingWin.SetProgress(asyncOperation.progress * 0.5f);
await UniTask.Yield();
}
- // Phase 3 (60% ~ 100%): Manager initialization
- await WaitForManagerProgress(loadingWin, 0.6f, 1.0f,
+ // Phase 2 (50% ~ 100%): Manager initialization
+ await WaitForManagerProgress(loadingWin, 0.5f, 1.0f,
ConfigManager.Instance.GetLoadingProgress, Main.InitManagers);
loadingWin.SetProgress(1f, true);
@@ -76,36 +68,51 @@
currentStage = StageName.Login;
- UIManager.Instance.OpenWindowAsync<LaunchBackGroundWin>().Forget();
- UIManager.Instance.OpenWindowAsync<LoginWin>().Forget();
+ UIManager.Instance.OpenWindowAsync<LaunchBackGroundWin>().ContinueWith(s => {
+ UIManager.Instance.OpenWindowAsync<LoginWin>().Forget();
+ DumpLoginSceneDiagnostics("ToLoginScene open triggered").ContinueWith(() => {
+ if (VersionUtility.Instance.NeedDownAsset() && !AssetVersionUtility.hasDownLoadFullAsset)
+ {
+ DownloadHotMgr.Instance.ClearDownloadCache();
+ InGameDownLoad.Instance.inGameDownLoadAllow = true;
+ InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.None);
+ }
+ }).Forget();
+ }).Forget();
- if (VersionUtility.Instance.NeedDownAsset() && !AssetVersionUtility.hasDownLoadFullAsset)
- {
- DownloadHotMgr.Instance.ClearDownloadCache();
- InGameDownLoad.Instance.inGameDownLoadAllow = true;
- InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.None);
- }
+
}
// 杩斿洖鐧诲綍鐣岄潰 濡傛柇绾�
- public void ReturnToLoginScene()
+ public async UniTaskVoid ReturnToLoginScene()
{
UIManager.Instance.DestroyAllUI();
- SceneManager.LoadSceneAsync("Login");
+ await SceneManager.LoadSceneAsync("Login");
Main.OnSwitchToLoginScene();
currentStage = StageName.Login;
- UIManager.Instance.OpenWindowAsync<LaunchBackGroundWin>().Forget();
- UIManager.Instance.OpenWindowAsync<LoginWin>().Forget();
- if (ServerForceExitHintWin.reason != 0)
- {
- UIManager.Instance.OpenWindowAsync<ServerForceExitHintWin>().Forget();
- }
- // SoundPlayer.Instance.StopBackGroundMusic();
- SoundPlayer.Instance.PlayLoginMusic();
+ UIManager.Instance.OpenWindowAsync<LaunchBackGroundWin>().ContinueWith(s => {
+ UIManager.Instance.OpenWindowAsync<LoginWin>().Forget();
+ DumpLoginSceneDiagnostics("ToLoginScene open triggered").ContinueWith(() => {
+ if (ServerForceExitHintWin.reason != 0)
+ {
+ UIManager.Instance.OpenWindowAsync<ServerForceExitHintWin>().Forget();
+ }
+ // SoundPlayer.Instance.StopBackGroundMusic();
+ SoundPlayer.Instance.PlayLoginMusic();
+ }).Forget();
+ }).Forget();
+ }
+
+ private async UniTask DumpLoginSceneDiagnostics(string context)
+ {
+ await UniTask.DelayFrame(2);
+ UIManager.Instance.DumpUIDiagnostics(context + " after 2 frames");
+ await UniTask.DelayFrame(30);
+ UIManager.Instance.DumpUIDiagnostics(context + " after 32 frames");
}
protected float GetManagerRequestDataProgress()
@@ -140,17 +147,9 @@
LoadingWin loadingWin = await UIManager.Instance.OpenWindowAsync<LoadingWin>();
InitLoadingWinData(loadingWin);
- // Phase 1 (0% ~ 30%): YooAsset resource preload
- if (AssetSource.isUseAssetBundle)
- {
- loadingWin.SetProgress(0.05f);
- await YooAssetService.Instance.LoadAllAssetsAsync<UnityEngine.Object>("Assets/ResourcesOut/Scenes/Game");
- loadingWin.SetProgress(0.3f);
- }
-
SoundPlayer.Instance.StopBackGroundMusic();
- // Phase 2 (30% ~ 60%): Scene loading
+ // Phase 1 (0% ~ 60%): Scene loading
AsyncOperation asyncOperation = SceneManager.LoadSceneAsync("Game");
asyncOperation.allowSceneActivation = false;
@@ -160,12 +159,12 @@
{
asyncOperation.allowSceneActivation = true;
}
- loadingWin.SetProgress(0.3f + asyncOperation.progress * 0.3f);
+ loadingWin.SetProgress(asyncOperation.progress * 0.5f);
await UniTask.Yield();
}
- // Phase 3 (60% ~ 100%): Manager data ready
- await WaitForManagerProgress(loadingWin, 0.6f, 1.0f,
+ // Phase 2 (50% ~ 100%): Manager data ready
+ await WaitForManagerProgress(loadingWin, 0.5f, 1.0f,
() => (DTC0403_tagPlayerLoginLoadOK.finishedLogin ? .5f : 0f) + GetManagerRequestDataProgress() * .5f);
loadingWin.SetProgress(1f, true);
--
Gitblit v1.8.0