From 9b09f189e2830126a6d2f45dcba6b64c316960d0 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 16 九月 2025 20:56:33 +0800
Subject: [PATCH] 0312 增加下载模块

---
 Main/System/AssetVersion/DownloadHotMgr.cs |   35 +++++++++++++++++++----------------
 1 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/Main/System/AssetVersion/DownloadMgr.cs b/Main/System/AssetVersion/DownloadHotMgr.cs
similarity index 92%
rename from Main/System/AssetVersion/DownloadMgr.cs
rename to Main/System/AssetVersion/DownloadHotMgr.cs
index 88f7a21..08cccad 100644
--- a/Main/System/AssetVersion/DownloadMgr.cs
+++ b/Main/System/AssetVersion/DownloadHotMgr.cs
@@ -10,7 +10,7 @@
 using Cysharp.Threading.Tasks;
 
 
-public class DownloadMgr : SingletonMonobehaviour<DownloadMgr>
+public class DownloadHotMgr : SingletonMonobehaviour<DownloadHotMgr>
 {
     #region 閰嶇疆
     public static int MaxRetryTimes = 5;//鏈�澶ч噸璇曠殑娆℃暟
@@ -19,14 +19,14 @@
     #endregion
 
     #region 浠诲姟鍒楄〃
-    private Dictionary<string, DownloadTask> allTask = new Dictionary<string, DownloadTask>();    //鎵�鏈変换鍔$粍
-    private Queue<DownloadTask> waitTask = new Queue<DownloadTask>();    //褰撳墠绛夊緟涓嬭浇鐨勪换鍔�
-    private Dictionary<string, DownloadTask> downloadTask = new Dictionary<string, DownloadTask>();    //褰撳墠姝e湪涓嬭浇鐨勪换鍔�
+    private Dictionary<string, DownloadHotTask> allTask = new Dictionary<string, DownloadHotTask>();    //鎵�鏈変换鍔$粍
+    private Queue<DownloadHotTask> waitTask = new Queue<DownloadHotTask>();    //褰撳墠绛夊緟涓嬭浇鐨勪换鍔�
+    private Dictionary<string, DownloadHotTask> downloadTask = new Dictionary<string, DownloadHotTask>();    //褰撳墠姝e湪涓嬭浇鐨勪换鍔�
     #endregion 浠诲姟鍒楄〃
 
     private bool isBegin;
     private int startTickcount = 0;
-    private Func<bool, DownloadTask, bool> onTaskCompleted;//鏂囦欢涓嬭浇瀹屾垚鍥炶皟锛�<鏄惁鍏ㄩ儴瀹屾垚锛屼换鍔″璞★紝return true:绔嬪嵆閲嶈瘯锛宖alse:鍒伴槦灏鹃噸璇�>
+    private Func<bool, DownloadHotTask, bool> onTaskCompleted;//鏂囦欢涓嬭浇瀹屾垚鍥炶皟锛�<鏄惁鍏ㄩ儴瀹屾垚锛屼换鍔″璞★紝return true:绔嬪嵆閲嶈瘯锛宖alse:鍒伴槦灏鹃噸璇�>
 
     //鎬婚�熷害
     private float speed;
@@ -69,7 +69,7 @@
     }
 
     //娣诲姞浠诲姟
-    public DownloadMgr AddTask(DownloadTask task)
+    public DownloadHotMgr AddTask(DownloadHotTask task)
     {
         if (allTask.ContainsKey(task.Key))
         {
@@ -82,7 +82,7 @@
     }
 
     //鍑嗗涓嬭浇锛岄噸缃姸鎬�
-    public DownloadMgr Prepare()
+    public DownloadHotMgr Prepare()
     {
         Stop();
         this.onTaskCompleted = null;
@@ -99,7 +99,7 @@
     /// </summary>
     /// <param name="onTaskCompleted">浠诲姟缁撴潫鍥炶皟</param>
     /// <returns></returns>
-    public DownloadMgr Begin(Func<bool, DownloadTask, bool> onTaskCompleted = null)
+    public DownloadHotMgr Begin(Func<bool, DownloadHotTask, bool> onTaskCompleted = null)
     {
         this.onTaskCompleted = onTaskCompleted;
         startTickcount = TimeUtility.AllSeconds;
@@ -145,7 +145,7 @@
     }
 
     // 浠诲姟涓嬭浇瀹屾垚
-    private void OnTaskCompleted(DownloadTask task)
+    private void OnTaskCompleted(DownloadHotTask task)
     {
         downloadTask.Remove(task.Key);
         if (task.IsDone)//涓嬭浇鎴愬姛
@@ -180,7 +180,7 @@
 
 
 
-public class DownloadTask
+public class DownloadHotTask
 {
     //涓嬭浇浠诲姟鐘舵��
     public enum TaskState
@@ -195,7 +195,7 @@
     public readonly string tempFile;//涓存椂鏂囦欢鍦板潃
     private readonly bool clearCache;//鏄惁娓呴櫎鏃х殑涓嬭浇缂撳瓨锛岋紙鏂偣缁紶锛�
     public readonly object obj; //鑷畾涔夊璞�
-    private Action<DownloadTask> onCompleted;//涓嬭浇瀹屾垚鍥炶皟
+    private Action<DownloadHotTask> onCompleted;//涓嬭浇瀹屾垚鍥炶皟
     private TaskState state;//涓嬭浇鐘舵��
 
     public bool isStop;//涓嬭浇琚仠姝�
@@ -230,7 +230,7 @@
     /// <param name="localUrl">鏈湴淇濆瓨鍦板潃</param>
     /// <param name="obj">鑷畾涔夊璞�</param>
     /// <param name="clearCache">鏄惁娓呴櫎涓婃涓嬭浇鐨勭紦瀛�</param>
-    public DownloadTask(string remoteUrl, string localUrl, object obj = null, bool clearCache = false)
+    public DownloadHotTask(string remoteUrl, string localUrl, object obj = null, bool clearCache = false)
     {
         this.remoteUrl = remoteUrl;
         this.localFile = localUrl;
@@ -266,11 +266,11 @@
         if (IsWorking)
             return;
 
-        Co_GetHeader();
+        Co_GetHeader().Forget();
         // SnxxzGame.Instance.StartCoroutine(Co_GetHeader());
     }
 
-    public bool BeginDownload(Action<DownloadTask> onCompleted)
+    public bool BeginDownload(Action<DownloadHotTask> onCompleted)
     {
         if ((IsWorking && requestHeaderOk) || IsDone)//宸茬粡鍦ㄤ笅杞戒换鍔′腑鎴栧凡缁忎笅杞藉畬鎴愪簡
             return false;
@@ -278,7 +278,7 @@
             failedTimes = 0;
         this.onCompleted = onCompleted;
         this.isStop = false;
-        Co_DownloadFile();
+        Co_DownloadFile().Forget();
         // SnxxzGame.Instance.StartCoroutine(Co_DownloadFile());
         return true;
     }
@@ -300,7 +300,7 @@
         Debug.LogFormat("寮�濮嬭幏鍙栧ご淇℃伅锛歿0}", remoteUrl);
         using (var www = UnityWebRequest.Head(remoteUrl))
         {
-            www.timeout = DownloadMgr.TimeOut;
+            www.timeout = DownloadHotMgr.TimeOut;
             await www.SendWebRequest();
             if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError)
             {
@@ -443,6 +443,7 @@
 
     private async UniTask Move(string sourceFile, string destFile)
     {
+
         var copyState = 0;//澶嶅埗鏂囦欢鐘舵�侊紝0绛夊緟锛�1鎴愬姛锛�2澶辫触
         try
         {
@@ -464,6 +465,8 @@
         }
         else
             SetFailed("涓存椂鏂囦欢鏀瑰悕鍑洪敊");
+
+        await UniTask.CompletedTask;
     }
 
 }

--
Gitblit v1.8.0