diff --git a/Assets/YooAsset/Runtime/DownloadSystem/DownloadRequestDelegate.cs b/Assets/YooAsset/Runtime/DownloadSystem/DownloadRequestDelegate.cs
deleted file mode 100644
index 80ee87f..0000000
--- a/Assets/YooAsset/Runtime/DownloadSystem/DownloadRequestDelegate.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using JetBrains.Annotations;
-using UnityEngine.Networking;
-
-namespace YooAsset
-{
- public delegate UnityWebRequest DownloadRequestDelegate(string url);
-
- ///
- /// 自定义下载器的请求
- ///
- internal static class DownloadRequestUtil
- {
-
- [CanBeNull] private static DownloadRequestDelegate _downloadRequestDelegate;
-
- public static void SetRequestDelegate(DownloadRequestDelegate requestDelegate)
- {
- _downloadRequestDelegate = requestDelegate;
- }
-
- public static UnityWebRequest NewRequest(string requestURL)
- {
- return _downloadRequestDelegate != null
- ? _downloadRequestDelegate?.Invoke(requestURL)
- : new UnityWebRequest(requestURL, UnityWebRequest.kHttpVerbGET);
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/DownloadSystem/DownloadRequestDelegate.cs.meta b/Assets/YooAsset/Runtime/DownloadSystem/DownloadRequestDelegate.cs.meta
deleted file mode 100644
index 9b07fd2..0000000
--- a/Assets/YooAsset/Runtime/DownloadSystem/DownloadRequestDelegate.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 3b21da9f048045e2af56d9d396b11c2f
-timeCreated: 1677207036
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/DownloadSystem/DownloadSystem.cs b/Assets/YooAsset/Runtime/DownloadSystem/DownloadSystem.cs
index 88514d1..32da42d 100644
--- a/Assets/YooAsset/Runtime/DownloadSystem/DownloadSystem.cs
+++ b/Assets/YooAsset/Runtime/DownloadSystem/DownloadSystem.cs
@@ -6,6 +6,11 @@ using UnityEngine.Networking;
namespace YooAsset
{
+ ///
+ /// 自定义下载器的请求委托
+ ///
+ public delegate UnityWebRequest DownloadRequestDelegate(string url);
+
///
/// 1. 保证每一时刻资源文件只存在一个下载器
/// 2. 保证下载器下载完成后立刻验证并缓存
@@ -17,10 +22,15 @@ namespace YooAsset
private static readonly List _removeList = new List(100);
+ ///
+ /// 自定义下载器的请求委托
+ ///
+ public static DownloadRequestDelegate RequestDelegate = null;
+
///
/// 自定义的证书认证实例
///
- public static CertificateHandler CertificateHandlerInstance;
+ public static CertificateHandler CertificateHandlerInstance = null;
///
/// 启用断点续传功能文件的最小字节数
@@ -32,14 +42,6 @@ namespace YooAsset
///
public static List ClearFileResponseCodes { set; get; }
- ///
- /// 自定义下载请求
- ///
- ///
- public static void SetRequestDelegate(DownloadRequestDelegate requestDelegate)
- {
- DownloadRequestUtil.SetRequestDelegate(requestDelegate);
- }
///
/// 更新所有下载器
@@ -75,7 +77,11 @@ namespace YooAsset
}
_downloaderDic.Clear();
_removeList.Clear();
+
+ RequestDelegate = null;
+ CertificateHandlerInstance = null;
BreakpointResumeFileSize = int.MaxValue;
+ ClearFileResponseCodes.Clear();
}
@@ -110,6 +116,18 @@ namespace YooAsset
}
}
+ ///
+ /// 创建一个新的网络请求
+ ///
+ public static UnityWebRequest NewRequest(string requestURL)
+ {
+ if (RequestDelegate != null)
+ return RequestDelegate.Invoke(requestURL);
+
+ var request = new UnityWebRequest(requestURL, UnityWebRequest.kHttpVerbGET);
+ return request;
+ }
+
///
/// 获取下载器的总数
///
diff --git a/Assets/YooAsset/Runtime/DownloadSystem/Downloader/FileDownloader.cs b/Assets/YooAsset/Runtime/DownloadSystem/Downloader/FileDownloader.cs
index ad3d686..5576674 100644
--- a/Assets/YooAsset/Runtime/DownloadSystem/Downloader/FileDownloader.cs
+++ b/Assets/YooAsset/Runtime/DownloadSystem/Downloader/FileDownloader.cs
@@ -80,7 +80,7 @@ namespace YooAsset
if (File.Exists(_tempFilePath))
File.Delete(_tempFilePath);
- _webRequest = DownloadRequestUtil.NewRequest(_requestURL);
+ _webRequest = DownloadSystem.NewRequest(_requestURL);
DownloadHandlerFile handler = new DownloadHandlerFile(_tempFilePath);
handler.removeFileOnAbort = true;
_webRequest.downloadHandler = handler;
@@ -109,11 +109,11 @@ namespace YooAsset
}
#if UNITY_2019_4_OR_NEWER
- _webRequest = DownloadRequestUtil.NewRequest(_requestURL);
+ _webRequest = DownloadSystem.NewRequest(_requestURL);
var handler = new DownloadHandlerFile(_tempFilePath, true);
handler.removeFileOnAbort = false;
#else
- _webRequest = UnityWebRequestUtil.NewRequest(_requestURL);
+ _webRequest = DownloadSystem.NewRequest(_requestURL);
var handler = new DownloadHandlerFileRange(_tempFilePath, _bundleInfo.Bundle.FileSize, _webRequest);
_downloadHandle = handler;
#endif
diff --git a/Assets/YooAsset/Runtime/DownloadSystem/UnityWebDataRequester.cs b/Assets/YooAsset/Runtime/DownloadSystem/UnityWebDataRequester.cs
index 31ad283..6c0a213 100644
--- a/Assets/YooAsset/Runtime/DownloadSystem/UnityWebDataRequester.cs
+++ b/Assets/YooAsset/Runtime/DownloadSystem/UnityWebDataRequester.cs
@@ -29,7 +29,7 @@ namespace YooAsset
if (_webRequest == null)
{
URL = url;
- _webRequest = DownloadRequestUtil.NewRequest(URL);
+ _webRequest = DownloadSystem.NewRequest(URL);
DownloadHandlerBuffer handler = new DownloadHandlerBuffer();
_webRequest.downloadHandler = handler;
_webRequest.disposeDownloadHandlerOnDispose = true;
diff --git a/Assets/YooAsset/Runtime/DownloadSystem/UnityWebFileRequester.cs b/Assets/YooAsset/Runtime/DownloadSystem/UnityWebFileRequester.cs
index ba2d73b..f5c08bc 100644
--- a/Assets/YooAsset/Runtime/DownloadSystem/UnityWebFileRequester.cs
+++ b/Assets/YooAsset/Runtime/DownloadSystem/UnityWebFileRequester.cs
@@ -39,7 +39,7 @@ namespace YooAsset
_latestDownloadBytes = 0;
_latestDownloadRealtime = Time.realtimeSinceStartup;
- _webRequest = DownloadRequestUtil.NewRequest(URL);
+ _webRequest = DownloadSystem.NewRequest(URL);
DownloadHandlerFile handler = new DownloadHandlerFile(savePath);
handler.removeFileOnAbort = true;
_webRequest.downloadHandler = handler;
diff --git a/Assets/YooAsset/Runtime/YooAssets.cs b/Assets/YooAsset/Runtime/YooAssets.cs
index 6e62354..466be01 100644
--- a/Assets/YooAsset/Runtime/YooAssets.cs
+++ b/Assets/YooAsset/Runtime/YooAssets.cs
@@ -168,15 +168,6 @@ namespace YooAsset
DownloadSystem.BreakpointResumeFileSize = fileBytes;
}
- ///
- /// 自定义下载请求
- ///
- ///
- public static void SetDownloadSystemUnityWebRequest(DownloadRequestDelegate requestDelegate)
- {
- DownloadSystem.SetRequestDelegate(requestDelegate);
- }
-
///
/// 设置下载系统参数,下载失败后清理文件的HTTP错误码
///
@@ -193,6 +184,14 @@ namespace YooAsset
DownloadSystem.CertificateHandlerInstance = instance;
}
+ ///
+ /// 设置下载系统参数,自定义下载请求
+ ///
+ public static void SetDownloadSystemUnityWebRequest(DownloadRequestDelegate requestDelegate)
+ {
+ DownloadSystem.RequestDelegate = requestDelegate;
+ }
+
///
/// 设置异步系统参数,每帧执行消耗的最大时间切片(单位:毫秒)
///