feat : add WebNetwork file system

This commit is contained in:
何冠峰
2026-05-27 10:31:35 +08:00
parent af7aecbf0b
commit 72c5a9588e
4 changed files with 6 additions and 19 deletions

View File

@@ -46,7 +46,7 @@ namespace YooAsset
assetBundleDecryptor: _fileCache.Config.AssetBundleDecryptor, assetBundleDecryptor: _fileCache.Config.AssetBundleDecryptor,
downloadBackend: _fileCache.Config.DownloadBackend, downloadBackend: _fileCache.Config.DownloadBackend,
downloadVerifyLevel: _fileCache.Config.DownloadVerifyLevel, downloadVerifyLevel: _fileCache.Config.DownloadVerifyLevel,
watchdogTimeout: _fileCache.Config.WatchdogTimeout, watchdogTimeout: 0,
downloadRetryPolicy: _fileCache.Config.DownloadRetryPolicy, downloadRetryPolicy: _fileCache.Config.DownloadRetryPolicy,
downloadUrlPolicy: _fileCache.Config.DownloadUrlPolicy); downloadUrlPolicy: _fileCache.Config.DownloadUrlPolicy);
_loadBundleOp = new LoadWebEncryptedAssetBundleOperation(encryptedOptions); _loadBundleOp = new LoadWebEncryptedAssetBundleOperation(encryptedOptions);
@@ -58,7 +58,7 @@ namespace YooAsset
candidateUrls: urls, candidateUrls: urls,
platformStrategy: _fileCache.Config.PlatformStrategy, platformStrategy: _fileCache.Config.PlatformStrategy,
downloadBackend: _fileCache.Config.DownloadBackend, downloadBackend: _fileCache.Config.DownloadBackend,
watchdogTimeout: _fileCache.Config.WatchdogTimeout, watchdogTimeout: 0,
disableUnityWebCache: _fileCache.Config.DisableUnityWebCache, disableUnityWebCache: _fileCache.Config.DisableUnityWebCache,
downloadRetryPolicy: _fileCache.Config.DownloadRetryPolicy, downloadRetryPolicy: _fileCache.Config.DownloadRetryPolicy,
downloadUrlPolicy: _fileCache.Config.DownloadUrlPolicy); downloadUrlPolicy: _fileCache.Config.DownloadUrlPolicy);

View File

@@ -44,7 +44,7 @@ namespace YooAsset
rawBundleDecryptor: _fileCache.Config.RawBundleDecryptor, rawBundleDecryptor: _fileCache.Config.RawBundleDecryptor,
downloadBackend: _fileCache.Config.DownloadBackend, downloadBackend: _fileCache.Config.DownloadBackend,
downloadVerifyLevel: _fileCache.Config.DownloadVerifyLevel, downloadVerifyLevel: _fileCache.Config.DownloadVerifyLevel,
watchdogTimeout: _fileCache.Config.WatchdogTimeout, watchdogTimeout: 0,
downloadRetryPolicy: _fileCache.Config.DownloadRetryPolicy, downloadRetryPolicy: _fileCache.Config.DownloadRetryPolicy,
downloadUrlPolicy: _fileCache.Config.DownloadUrlPolicy); downloadUrlPolicy: _fileCache.Config.DownloadUrlPolicy);
_loadBundleOp = new LoadWebRawBundleOperation(options); _loadBundleOp = new LoadWebRawBundleOperation(options);

View File

@@ -7,11 +7,6 @@ namespace YooAsset
{ {
internal readonly struct Configuration internal readonly struct Configuration
{ {
/// <summary>
/// 看门狗超时时间
/// </summary>
public int WatchdogTimeout { get; }
/// <summary> /// <summary>
/// 禁用 Unity 内置网络缓存 /// 禁用 Unity 内置网络缓存
/// </summary> /// </summary>
@@ -57,12 +52,11 @@ namespace YooAsset
/// </summary> /// </summary>
public IDownloadUrlPolicy DownloadUrlPolicy { get; } public IDownloadUrlPolicy DownloadUrlPolicy { get; }
public Configuration(int watchdogTimeout, bool disableUnityWebCache, public Configuration(bool disableUnityWebCache,
EFileVerifyLevel downloadVerifyLevel, IBundleDecryptor assetBundleDecryptor, IBundleDecryptor rawBundleDecryptor, EFileVerifyLevel downloadVerifyLevel, IBundleDecryptor assetBundleDecryptor, IBundleDecryptor rawBundleDecryptor,
IWebPlatformStrategy platformStrategy, IRemoteService remoteService, IDownloadBackend downloadBackend, IWebPlatformStrategy platformStrategy, IRemoteService remoteService, IDownloadBackend downloadBackend,
IDownloadRetryPolicy downloadRetryPolicy, IDownloadUrlPolicy downloadUrlPolicy) IDownloadRetryPolicy downloadRetryPolicy, IDownloadUrlPolicy downloadUrlPolicy)
{ {
WatchdogTimeout = watchdogTimeout;
DisableUnityWebCache = disableUnityWebCache; DisableUnityWebCache = disableUnityWebCache;
DownloadVerifyLevel = downloadVerifyLevel; DownloadVerifyLevel = downloadVerifyLevel;
AssetBundleDecryptor = assetBundleDecryptor; AssetBundleDecryptor = assetBundleDecryptor;

View File

@@ -1,5 +1,4 @@
using System; using System;
using UnityEngine;
namespace YooAsset namespace YooAsset
{ {
@@ -40,11 +39,6 @@ namespace YooAsset
/// </summary> /// </summary>
public bool DisableUnityWebCache { get; private set; } = false; public bool DisableUnityWebCache { get; private set; } = false;
/// <summary>
/// 自定义参数:下载任务的看门狗机制超时时间
/// </summary>
public int DownloadWatchdogTimeout { get; private set; } = 0;
/// <summary> /// <summary>
/// 自定义参数:下载的资源包数据的校验级别 /// 自定义参数:下载的资源包数据的校验级别
/// </summary> /// </summary>
@@ -145,8 +139,8 @@ namespace YooAsset
} }
else if (paramName == nameof(EFileSystemParameter.DownloadWatchdogTimeout)) else if (paramName == nameof(EFileSystemParameter.DownloadWatchdogTimeout))
{ {
int convertValue = FileSystemHelper.CastParameter<int>(paramName, value); // 小游戏平台的 UnityWebRequest 可能无法返回可靠的下载字节数,因此不支持看门狗机制。
DownloadWatchdogTimeout = Mathf.Max(convertValue, 0); YooLogger.LogError($"{nameof(EFileSystemParameter.DownloadWatchdogTimeout)} is not supported by {nameof(WebNetworkFileSystem)}.");
} }
else if (paramName == nameof(EFileSystemParameter.FileVerifyLevel)) else if (paramName == nameof(EFileSystemParameter.FileVerifyLevel))
{ {
@@ -208,7 +202,6 @@ namespace YooAsset
// 创建文件缓存系统 // 创建文件缓存系统
var cacheConfig = new WebNetworkBundleCache.Configuration( var cacheConfig = new WebNetworkBundleCache.Configuration(
watchdogTimeout: DownloadWatchdogTimeout,
disableUnityWebCache: DisableUnityWebCache, disableUnityWebCache: DisableUnityWebCache,
downloadVerifyLevel: DownloadVerifyLevel, downloadVerifyLevel: DownloadVerifyLevel,
assetBundleDecryptor: AssetBundleDecryptor, assetBundleDecryptor: AssetBundleDecryptor,