From 97de31e9a015cf139f5293a22e1575a43dfb6733 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 24 四月 2026 14:16:02 +0800
Subject: [PATCH] WEBGL ANDROID适配
---
Main/System/AssetVersion/DownloadHotMgr.cs | 54 ++++++++++++++++++++++++++++++++++++------------------
1 files changed, 36 insertions(+), 18 deletions(-)
diff --git a/Main/System/AssetVersion/DownloadHotMgr.cs b/Main/System/AssetVersion/DownloadHotMgr.cs
index 497331e..807f947 100644
--- a/Main/System/AssetVersion/DownloadHotMgr.cs
+++ b/Main/System/AssetVersion/DownloadHotMgr.cs
@@ -329,30 +329,41 @@
this.state = TaskState.Working;
FileExtersion.MakeSureDirectory(tempFile);
Debug.LogFormat("寮�濮嬭幏鍙栧ご淇℃伅锛歿0}", remoteUrl);
- using (var www = UnityWebRequest.Head(remoteUrl))
+ try
{
- www.timeout = DownloadHotMgr.TimeOut;
- await www.SendWebRequest();
- if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError)
+ using (var www = UnityWebRequest.Head(remoteUrl))
{
- Debug.LogErrorFormat("澶翠俊鎭幏鍙栧け璐ワ細{0}锛沞rror锛歿1}", remoteUrl, www.error);
- requestHeaderOk = false;
- SetFailed(www.error);
+ www.timeout = DownloadHotMgr.TimeOut;
+ await www.SendWebRequest();
+ if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError)
+ {
+ Debug.LogErrorFormat("澶翠俊鎭幏鍙栧け璐ワ細{0}锛沞rror锛歿1}", remoteUrl, www.error);
+ requestHeaderOk = false;
+ SetFailed(www.error);
+ www.Dispose();
+ return;
+ }
+ long.TryParse(www.GetResponseHeader(HttpHeader.ContentLength), out this.remoteLength);
+ this.remoteLastModified = DateTime.Parse(www.GetResponseHeader(HttpHeader.LastModified));
+ var acceptRange = www.GetResponseHeader(HttpHeader.AcceptRanges);
+ this.isAcceptRange = acceptRange != "none";
+ Debug.LogFormat("澶翠俊鎭幏鍙栨垚鍔燂細{0}锛涘ぇ灏忥細{1}锛涗慨鏀规椂闂达細{2}锛涙槸鍚︽敮鎸佺画浼狅細{3}", remoteUrl, remoteLength, remoteLastModified, acceptRange);
+ requestHeaderOk = true;
+ state = TaskState.Wait;
www.Dispose();
- await UniTask.CompletedTask;
}
- long.TryParse(www.GetResponseHeader(HttpHeader.ContentLength), out this.remoteLength);
- this.remoteLastModified = DateTime.Parse(www.GetResponseHeader(HttpHeader.LastModified));
- var acceptRange = www.GetResponseHeader(HttpHeader.AcceptRanges);
- this.isAcceptRange = acceptRange != "none";
- Debug.LogFormat("澶翠俊鎭幏鍙栨垚鍔燂細{0}锛涘ぇ灏忥細{1}锛涗慨鏀规椂闂达細{2}锛涙槸鍚︽敮鎸佺画浼狅細{3}", remoteUrl, remoteLength, remoteLastModified, acceptRange);
- requestHeaderOk = true;
- state = TaskState.Wait;
- www.Dispose();
+ }
+ catch (Exception e)
+ {
+ Debug.LogError("[DownloadHotTask] Co_GetHeader 寮傚父\nURL: " + remoteUrl + "\nlocalFile: " + localFile + "\n閿欒: " + e.Message + "\n" + e.StackTrace);
+ requestHeaderOk = false;
+ SetFailed(e.Message);
}
}
private async UniTask Co_DownloadFile()
{
+ try
+ {
state = TaskState.Working;
while (TimeUtility.AllSeconds < beginTickCount + 5)//闄愬埗閲嶆柊涓嬭浇鐨勬椂闂撮棿闅�
{
@@ -367,7 +378,7 @@
if (!requestHeaderOk)//澶存枃浠惰幏鍙栧け璐�
{
onCompleted?.Invoke(this);
- await UniTask.CompletedTask;
+ return;
}
try
{
@@ -422,7 +433,7 @@
Debug.LogFormat("涓嬭浇璇锋眰鑼冨洿锛歿0} 锛沚ytes={1}", remoteUrl, LocalLength);
var localLength = LocalLength;
this.downloadedBytes = localLength;
- fileRequest.SendWebRequest();
+ _ = fileRequest.SendWebRequest();
while (!fileRequest.isDone)
{
var length = localLength + (long)fileRequest.downloadedBytes;//鏈湴鏂囦欢澶у皬+鏈涓嬭浇鐨勬暟鎹ぇ灏�
@@ -470,6 +481,13 @@
SetFailed("涓嬭浇瀹屾垚浣嗘槸鏂囦欢涓嶅瓨鍦�");
}
onCompleted?.Invoke(this);
+ }
+ catch (Exception e)
+ {
+ Debug.LogError("[DownloadHotTask] Co_DownloadFile 寮傚父\nURL: " + remoteUrl + "\nlocalFile: " + localFile + "\n閿欒: " + e.Message + "\n" + e.StackTrace);
+ SetFailed(e.Message);
+ onCompleted?.Invoke(this);
+ }
}
private async UniTask Move(string sourceFile, string destFile)
--
Gitblit v1.8.0