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