From 1ab047b5fdd933c38ba0519ec2e83a44512ea8d7 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 17:46:11 +0800
Subject: [PATCH] webgl代码合并 1

---
 Main/Core/GameEngine/Launch/LaunchInHot.cs |   53 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/Main/Core/GameEngine/Launch/LaunchInHot.cs b/Main/Core/GameEngine/Launch/LaunchInHot.cs
index 2003d76..bb29ec1 100644
--- a/Main/Core/GameEngine/Launch/LaunchInHot.cs
+++ b/Main/Core/GameEngine/Launch/LaunchInHot.cs
@@ -1,8 +1,9 @@
-using UnityEngine;
+锘縰sing UnityEngine;
 using System.Collections;
 using System;
 using System.Collections.Generic;
 using System.IO;
+using Cysharp.Threading.Tasks;
 
 public class LaunchInHot : SingletonMonobehaviour<LaunchInHot>
 {
@@ -17,19 +18,38 @@
     float surplusProgress = 0f;
     float surplusTime = 0f;
 
+    bool launchStartFinish = false;
+
     public Action OnApplicationOut = null;
 
 
-    void Start()
+    async void Start()
+    {
+        launchStartFinish = false;
+        try
+        {
+            await StartAsync();
+        }
+        catch (Exception ex)
+        {
+            Debug.LogError($"[LaunchInHot] Start 鍒濆鍖栧紓甯革紝娓告垙鏃犳硶缁х画: {ex}");
+            return; // launchStartFinish 淇濇寔 false锛孶pdate 浼氫竴鐩寸瓑寰咃紙涓嶄細杩涘叆 Main.Init锛�
+        }
+        launchStartFinish = true;
+    }
+
+    async UniTask StartAsync()
     {
         System.Net.ServicePointManager.DefaultConnectionLimit = 100;//璁剧疆http鏈�澶ц繛鎺ユ暟
         Application.backgroundLoadingPriority = ThreadPriority.High;
         Screen.sleepTimeout = SleepTimeout.NeverSleep;
 
+        await VersionConfig.GetAsync();  // 纭繚 VersionConfig.config 鍦� SDKUtils.Init() 鍓嶅凡鍔犺浇
+
         SDKUtils.Instance.Init();  //鍘焥dk鎺ュ彛
         if (!AssetSource.isUseAssetBundle)
         {
-            InitSystemMgr();
+            await InitSystemMgr();
 
             UIManager.Instance.OpenWindowAsync<LaunchWin>().Forget();
             
@@ -39,7 +59,12 @@
         var yooAssetInitTask = new YooAssetInitTask();
         tasks.Enqueue(yooAssetInitTask);
         // AssetBundleInitTask removed 鈥� YooAssetInitTask handles all resource system initialization
-#if !UNITY_WEBGL
+#if UNITY_WEBGL
+        // WebGL 涓嶄娇鐢� BuiltInAssetCopyTask锛堟棤闇�鎷疯礉鍐呯疆璧勬簮锛夛紝
+        // 浣嗕粛闇�鍦� YooAsset 鍒濆鍖栧悗璋冪敤 InitSystemMgr 鍒濆鍖� UIManager 绛夈��
+        var webGLSystemInitTask = new WebGLSystemInitTask();
+        tasks.Enqueue(webGLSystemInitTask);
+#else
         var builtInAssetCopyTask = new BuiltInAssetCopyTask();
         tasks.Enqueue(builtInAssetCopyTask);
 #endif
@@ -83,6 +108,9 @@
                 //tasks.Enqueue(assetCopyTask);
                 tasks.Enqueue(getVersionInfoTask);
                 break;
+            case RuntimePlatform.WebGLPlayer:
+                tasks.Enqueue(getVersionInfoTask);
+                break;
         }
 
         tasks.Enqueue(checkAssetValidTask);
@@ -93,19 +121,24 @@
         tasks.Enqueue(launchFadeOutTask);
 
         CalculateExpectTotalTime();
-
     }
 
-    public void InitSystemMgr()
+    public async UniTask InitSystemMgr()
     {
+        SpriteAtlasHandler.Register();
         ResManager.Instance.Init();
-        UIManager.Instance.Init();
-        StageManager.Instance.Init();
-        LoginManager.Instance.Init();
+        await UIManager.Instance.Init();
+        await StageManager.Instance.Init();
+        await LoginManager.Instance.Init();
     }
 
     void Update()
     {
+        if (!launchStartFinish)
+        {
+            return;
+        }
+
         if (!launchComplete)
         {
             if (currentTask == null)
@@ -113,10 +146,12 @@
                 if (tasks.Count > 0)
                 {
                     currentTask = tasks.Dequeue();
+                    Debug.LogError("start currentTask is " + currentTask.GetType().Name);
                     currentTask.Begin();
                 }
                 else
                 {
+                    Debug.LogError("launchComplete = true");
                     launchComplete = true;
                 }
             }

--
Gitblit v1.8.0