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