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

---
 Main/System/AssetVersion/AssetVersionUtility.cs |  106 +++++++++++++++++++++++++++-------------------------
 1 files changed, 55 insertions(+), 51 deletions(-)

diff --git a/Main/System/AssetVersion/AssetVersionUtility.cs b/Main/System/AssetVersion/AssetVersionUtility.cs
index 96dbc31..d46bce3 100644
--- a/Main/System/AssetVersion/AssetVersionUtility.cs
+++ b/Main/System/AssetVersion/AssetVersionUtility.cs
@@ -101,21 +101,25 @@
     }
     public static void GetAssetVersionFile()
     {
-        checkAssetCompleted = false;
-        Debug.LogFormat("寮�濮嬭幏鍙栬祫婧愮増鏈枃浠讹細鏃堕棿 {0}", DateTime.Now);
-        var assetVersionUrl = StringUtility.Concat(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/AssetsVersion.txt");
-        assetVerUrl = assetVersionUrl;
-        Debug.Log("http鍦板潃:assetVersionUrl  " + assetVersionUrl);
-        HttpRequest.Instance.UnityWebRequestGet(assetVersionUrl, 5, OnGetAssetVersionFile);
+        VersionConfig.GetAsync().ContinueWith(config =>
+        {
+            checkAssetCompleted = false;
+            Debug.LogFormat("寮�濮嬭幏鍙栬祫婧愮増鏈枃浠讹細鏃堕棿 {0}", DateTime.Now);
+            var assetVersionUrl = StringUtility.Concat(VersionUtility.Instance.versionInfo.GetResourcesURL(config.branch), Language.fixPath, "/AssetsVersion.txt");
+            assetVerUrl = assetVersionUrl;
+            Debug.Log("http鍦板潃:assetVersionUrl  " + assetVersionUrl);
+            HttpRequest.Instance.UnityWebRequestGet(assetVersionUrl, 5, OnGetAssetVersionFile);
+        }).Forget();
+
     }
 
-    private static void OnGetAssetVersionFile(bool _ok, string _result)
+    private static async void OnGetAssetVersionFile(bool _ok, string _result)
     {
         Debug.LogFormat("鑾峰彇璧勬簮鐗堟湰鏂囦欢缁撴灉锛氭椂闂� {0}锛岀粨鏋� {1}, 鏂囦欢澶у皬 {2}", DateTime.Now, _ok, _result.Length);
         if (_ok)
         {
             assetVersionsLocalMd5 = FileExtersion.GetStringMD5Hash(_result);
-            var assetVersions = UpdateAssetVersions(_result);
+            var assetVersions = await UpdateAssetVersions(_result);
             BeginCheckAssets();
         }
         else
@@ -132,48 +136,48 @@
         if (InGameDownTestUtility.enable && !InGameDownTestUtility.isReadStreamingAssets)
             checkStream = false;
 #endif
+        BeginCheckAssetsAsync(checkStream).Forget();
+    }
 
-        ThreadPool.QueueUserWorkItem(
-            (object aaa) =>
+    private static async UniTaskVoid BeginCheckAssetsAsync(bool checkStream)
+    {
+        int count = 0;
+        foreach (var assetVersion in assetVersions.Values)
+        {
+            bool checkReuslt;
+            if (checkStream)
             {
-                foreach (var assetVersion in assetVersions.Values)
-                {
-                    bool checkReuslt;
-                    if (checkStream)
-                    {
-                        AssetVersion localAssetVersion = null;
-                        localAssetVersions.TryGetValue(assetVersion.relativePath, out localAssetVersion);
-                        checkReuslt = assetVersion.CheckLocalFileValid(localAssetVersion);
-                    }
-                    else
-                    {
-                        checkReuslt = assetVersion.CheckLocalFileValid(false);
-                    }
-                    if (!checkReuslt)
-                    {
-                        if (assetVersion.IsPriorAsset())
-                        {
-                            priorDownLoadAssetVersions.Add(assetVersion);
-                        }
-                        else
-                        {
-                            unpriorDownLoadAssetVersions.Add(assetVersion);
-                        }
-
-                        assetVersion.localValid = false;
-                    }
-                    else
-                    {
-                        assetVersion.localValid = true;
-                    }
-                }
-
-                m_PriorAssetDownLoadDone = priorDownLoadAssetVersions.Count <= 0;
-                m_UnPriorAssetDownLoadDone = unpriorDownLoadAssetVersions.Count <= 0;
-
-                checkAssetCompleted = true;
+                AssetVersion localAssetVersion = null;
+                localAssetVersions.TryGetValue(assetVersion.relativePath, out localAssetVersion);
+                checkReuslt = assetVersion.CheckLocalFileValid(localAssetVersion);
             }
-            );
+            else
+            {
+                checkReuslt = assetVersion.CheckLocalFileValid(false);
+            }
+
+            if (!checkReuslt)
+            {
+                if (await assetVersion.IsPriorAsset())
+                    priorDownLoadAssetVersions.Add(assetVersion);
+                else
+                    unpriorDownLoadAssetVersions.Add(assetVersion);
+
+                assetVersion.localValid = false;
+            }
+            else
+            {
+                assetVersion.localValid = true;
+            }
+
+            count++;
+            if (count % 50 == 0)
+                await UniTask.Yield(); // 姣�50涓鍑轰竴甯э紝閬垮厤涓荤嚎绋嬪崱椤�
+        }
+
+        m_PriorAssetDownLoadDone = priorDownLoadAssetVersions.Count <= 0;
+        m_UnPriorAssetDownLoadDone = unpriorDownLoadAssetVersions.Count <= 0;
+        checkAssetCompleted = true;
     }
 
     public static void BeginDownLoadTask(bool _prior)
@@ -194,9 +198,9 @@
         }
     }
 
-    public static Dictionary<string, AssetVersion> UpdateAssetVersions(string _assetVersionFile)
+    public async static UniTask<Dictionary<string, AssetVersion>> UpdateAssetVersions(string _assetVersionFile)
     {
-        InitPackageVersionInfo();
+        await InitPackageVersionInfo();
         var lines = _assetVersionFile.Split(new string[] { FileExtersion.lineSplit }, StringSplitOptions.RemoveEmptyEntries);
         assetVersions.Clear();
         for (int i = 0; i < lines.Length; i++)
@@ -207,9 +211,9 @@
         return assetVersions;
     }
 
-    static void InitPackageVersionInfo()
+    static async UniTask InitPackageVersionInfo()
     {
-        var text = Resources.Load<TextAsset>("AssetsVersionCmp");
+        var text = await Resources.LoadAsync<TextAsset>("AssetsVersionCmp") as TextAsset;
         if (text != null)
         {
             var lines = text.text.Split(new string[] { FileExtersion.lineSplit }, StringSplitOptions.RemoveEmptyEntries);

--
Gitblit v1.8.0