From 184e096ddd40d2a1d178df726501bd48078e511c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 22 十月 2025 18:14:43 +0800
Subject: [PATCH] 图集更新

---
 Assets/Launch/Common/DownLoadAndDiscompressTask.cs |   45 +++++++++++++++++++++++++++++++++------------
 1 files changed, 33 insertions(+), 12 deletions(-)

diff --git a/Assets/Launch/Common/DownLoadAndDiscompressTask.cs b/Assets/Launch/Common/DownLoadAndDiscompressTask.cs
index 2bd4aaa..e1d806a 100644
--- a/Assets/Launch/Common/DownLoadAndDiscompressTask.cs
+++ b/Assets/Launch/Common/DownLoadAndDiscompressTask.cs
@@ -3,6 +3,7 @@
 using UnityEngine;
 using System;
 using LaunchCommon;
+using Cysharp.Threading.Tasks;
 
 
 public class DownLoadAndDiscompressTask : Singleton<DownLoadAndDiscompressTask>
@@ -38,7 +39,7 @@
         }
     }
 
-    public void Prepare(List<LaunchCommon.AssetVersion> _downLoadTasks, Action _downLoadOkCallBack)
+    public void Prepare(List<AssetVersion> _downLoadTasks, Action _downLoadOkCallBack)
     {
         tasks = _downLoadTasks;
         downLoadOkCallBack = _downLoadOkCallBack;
@@ -54,18 +55,18 @@
         }
 
         StartDownLoad();
-
     }
 
     public void StartDownLoad()
     {
         step = Step.DownLoad;
-        DownloadMgr.Instance.StartCoroutine(Co_StartDownLoad());
-
+        Co_StartDownLoad().Forget();
     }
 
-    IEnumerator Co_StartDownLoad()
+    async UniTask Co_StartDownLoad()
     {
+        int downLoadTryCount = 0;
+        List<bool> checkDownFile = new List<bool>();
         while (tasks.Count > 0)
         {
             DownloadMgr.MaxDownLoadTask = 10;
@@ -73,8 +74,8 @@
             for (int i = 0; i < tasks.Count; i++)
             {
                 var assetVersion = tasks[i];
-                var remoteURL = StringUtility.Contact(ResManager.Instance.versionInfo.GetResourcesURL(VersionConfigEx.Get().branch), ResManager.fixPath, "/", assetVersion.relativePath);
-                var localURL = StringUtility.Contact(ResManager.Instance.ExternalStorePath, assetVersion.relativePath);
+                var remoteURL = StringUtility.Contact(LocalResManager.Instance.versionInfo.GetResourcesURL(VersionConfigEx.Get().branch), LocalResManager.fixPath, "/", assetVersion.relativePath);
+                var localURL = StringUtility.Contact(LocalResManager.Instance.ExternalStorePath, assetVersion.relativePath);
                 DownloadMgr.Instance.AddTask(new DownloadTask(remoteURL, localURL));
             }
 
@@ -82,23 +83,45 @@
 
             while (!DownloadMgr.Instance.IsFinished)
             {
-                yield return null;
+                await UniTask.Yield();
             }
 
+            checkDownFile = new List<bool>();
             //妫�鏌ヤ笅杞藉畬鎴愬悗鐨勬枃浠舵槸鍚︽湁鏁�
             var filledTasks = new List<AssetVersion>();//鏃犳晥鐨勬枃浠�
             for (int i = 0; i < tasks.Count; i++)
             {
                 var assetVersion = tasks[i];
-                var correctFile = assetVersion.CheckLocalFileValid();
+                var correctFile = assetVersion.CheckLocalFileValid(checkDownFile);
                 if (correctFile)
                     assetVersion.localValid = true;
                 else
                     filledTasks.Add(assetVersion);
             }
+            
             if (filledTasks.Count > 0)
+            {
+                //鏂囦欢澶у皬鎴栬�匨D5涓嶅锛�1. cdn璧勬簮纭疄閿欒  2.cdn鎺ㄩ�佽繃绋嬩腑 鏂囦欢涓嶅尮閰�
+                //闇�瑕侀噸鏂颁笅杞絃ogicVersion鏂囦欢
+                if (checkDownFile.Count > 0)
+                {
+                    downLoadTryCount++;
+                }
                 Debug.LogErrorFormat("璧勬簮涓嬭浇瀹屽悗鏈墈0}涓枃浠舵棤鏁�({1})锛岄噸鏂板紑濮嬩笅杞�", filledTasks.Count, filledTasks[0].fileName);
+            }
             tasks = filledTasks;
+            if (downLoadTryCount >= 1)
+            {
+                LocalResManager.step = LocalResManager.LoadDllStep.PrepareDownLoad;
+                break;
+            }
+        }
+
+        if (downLoadTryCount >= 1)
+        {
+            Debug.LogError("logic璧勬簮涓嬭浇澶辫触锛岃鍛婃彁绀猴紝閫�鍑哄崗绋�");
+            LocalResManager.downLoadCount++;
+            return;
         }
 
         Debug.Log("璧勬簮鍏ㄩ儴涓嬭浇瀹屾垚");
@@ -110,7 +133,6 @@
             downLoadOkCallBack();
             downLoadOkCallBack = null;
         }
-
     }
 
     public enum Step
@@ -120,5 +142,4 @@
         DownLoad,
         Completed,
     }
-
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0