diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs index 615e4d53..94665bf0 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs @@ -109,9 +109,9 @@ namespace YooAsset var operation = new DBFSRequestPackageVersionOperation(this); return operation; } - public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options) { - return _unpackFileSystem.ClearCacheFilesAsync(manifest, clearMode, clearParam); + return _unpackFileSystem.ClearCacheFilesAsync(manifest, options); } public virtual FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param) { diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs index a2e3e6ae..dcd99d0e 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs @@ -120,36 +120,36 @@ namespace YooAsset var operation = new DCFSRequestPackageVersionOperation(this, appendTimeTicks, timeout); return operation; } - public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options) { - if (clearMode == EFileClearMode.ClearAllBundleFiles.ToString()) + if (options.ClearMode == EFileClearMode.ClearAllBundleFiles.ToString()) { var operation = new ClearAllCacheBundleFilesOperation(this); return operation; } - else if (clearMode == EFileClearMode.ClearUnusedBundleFiles.ToString()) + else if (options.ClearMode == EFileClearMode.ClearUnusedBundleFiles.ToString()) { var operation = new ClearUnusedCacheBundleFilesOperation(this, manifest); return operation; } - else if (clearMode == EFileClearMode.ClearBundleFilesByTags.ToString()) + else if (options.ClearMode == EFileClearMode.ClearBundleFilesByTags.ToString()) { - var operation = new ClearCacheBundleFilesByTagsOperaiton(this, manifest, clearParam); + var operation = new ClearCacheBundleFilesByTagsOperaiton(this, manifest, options.ClearParam); return operation; } - else if (clearMode == EFileClearMode.ClearAllManifestFiles.ToString()) + else if (options.ClearMode == EFileClearMode.ClearAllManifestFiles.ToString()) { var operation = new ClearAllCacheManifestFilesOperation(this); return operation; } - else if (clearMode == EFileClearMode.ClearUnusedManifestFiles.ToString()) + else if (options.ClearMode == EFileClearMode.ClearUnusedManifestFiles.ToString()) { var operation = new ClearUnusedCacheManifestFilesOperation(this, manifest); return operation; } else { - string error = $"Invalid clear mode : {clearMode}"; + string error = $"Invalid clear mode : {options.ClearMode}"; var operation = new FSClearCacheFilesCompleteOperation(error); return operation; } diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs index 930ec556..27007622 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs @@ -66,7 +66,7 @@ namespace YooAsset var operation = new DEFSRequestPackageVersionOperation(this); return operation; } - public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options) { var operation = new FSClearCacheFilesCompleteOperation(); return operation; diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs index 1ea14951..80aedffd 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs @@ -73,7 +73,7 @@ namespace YooAsset var operation = new DWRFSRequestPackageVersionOperation(this, appendTimeTicks, timeout); return operation; } - public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options) { var operation = new FSClearCacheFilesCompleteOperation(); return operation; diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs index 22d9b5d8..ae2547ba 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs @@ -82,7 +82,7 @@ namespace YooAsset var operation = new DWSFSRequestPackageVersionOperation(this, timeout); return operation; } - public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options) { var operation = new FSClearCacheFilesCompleteOperation(); return operation; diff --git a/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs index 4a296f45..e6e01802 100644 --- a/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs @@ -37,7 +37,7 @@ namespace YooAsset /// /// 清理缓存文件 /// - FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam); + FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options); /// /// 下载Bundle文件 diff --git a/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs b/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs index 6c72accc..d78f4e46 100644 --- a/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs @@ -1,6 +1,19 @@  namespace YooAsset { + internal class ClearCacheFilesOptions + { + /// + /// 清理模式 + /// + public string ClearMode; + + /// + /// 附加参数 + /// + public object ClearParam; + } + internal abstract class FSClearCacheFilesOperation : AsyncOperationBase { } diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs b/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs index d4b45496..e859ae5e 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs @@ -31,8 +31,8 @@ namespace YooAsset /// /// 清理缓存文件 /// - ClearCacheFilesOperation ClearCacheFilesAsync(string clearMode, object clearParam); - + ClearCacheFilesOperation ClearCacheFilesAsync(ClearCacheFilesOptions options); + // 下载相关 ResourceDownloaderOperation CreateResourceDownloaderByAll(int downloadingMaxNumber, int failedTryAgain, int timeout); ResourceDownloaderOperation CreateResourceDownloaderByTags(string[] tags, int downloadingMaxNumber, int failedTryAgain, int timeout); diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs b/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs index 5c4baf04..abcd0b9e 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs @@ -15,17 +15,15 @@ namespace YooAsset } private readonly PlayModeImpl _impl; - private readonly string _clearMode; - private readonly object _clearParam; + private readonly ClearCacheFilesOptions _options; private List _cloneList; private FSClearCacheFilesOperation _clearCacheFilesOp; private ESteps _steps = ESteps.None; - internal ClearCacheFilesOperation(PlayModeImpl impl, string clearMode, object clearParam) + internal ClearCacheFilesOperation(PlayModeImpl impl, ClearCacheFilesOptions options) { _impl = impl; - _clearMode = clearMode; - _clearParam = clearParam; + _options = options; } internal override void InternalStart() { @@ -74,7 +72,7 @@ namespace YooAsset var fileSystem = _cloneList[0]; _cloneList.RemoveAt(0); - _clearCacheFilesOp = fileSystem.ClearCacheFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam); + _clearCacheFilesOp = fileSystem.ClearCacheFilesAsync(_impl.ActiveManifest, _options); _clearCacheFilesOp.StartOperation(); AddChildOperation(_clearCacheFilesOp); _steps = ESteps.CheckClearResult; @@ -102,7 +100,7 @@ namespace YooAsset } internal override string InternalGetDesc() { - return $"ClearMode : {_clearMode}"; + return $"ClearMode : {_options.ClearMode}"; } } } \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/PlayModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/PlayModeImpl.cs index 7fec55a4..15c91f0b 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/PlayModeImpl.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/PlayModeImpl.cs @@ -97,9 +97,9 @@ namespace YooAsset /// /// 清理缓存文件 /// - ClearCacheFilesOperation IPlayMode.ClearCacheFilesAsync(string clearMode, object clearParam) + ClearCacheFilesOperation IPlayMode.ClearCacheFilesAsync(ClearCacheFilesOptions options) { - var operation = new ClearCacheFilesOperation(this, clearMode, clearParam); + var operation = new ClearCacheFilesOperation(this, options); return operation; } diff --git a/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs b/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs index d30511c8..055a5e6c 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs @@ -268,7 +268,10 @@ namespace YooAsset public ClearCacheFilesOperation ClearCacheFilesAsync(EFileClearMode clearMode, object clearParam = null) { DebugCheckInitialize(false); - var operation = _playModeImpl.ClearCacheFilesAsync(clearMode.ToString(), clearParam); + ClearCacheFilesOptions options = new ClearCacheFilesOptions(); + options.ClearMode = clearMode.ToString(); + options.ClearParam = clearParam; + var operation = _playModeImpl.ClearCacheFilesAsync(options); OperationSystem.StartOperation(PackageName, operation); return operation; } @@ -281,7 +284,10 @@ namespace YooAsset public ClearCacheFilesOperation ClearCacheFilesAsync(string clearMode, object clearParam = null) { DebugCheckInitialize(false); - var operation = _playModeImpl.ClearCacheFilesAsync(clearMode, clearParam); + ClearCacheFilesOptions options = new ClearCacheFilesOptions(); + options.ClearMode = clearMode; + options.ClearParam = clearParam; + var operation = _playModeImpl.ClearCacheFilesAsync(options); OperationSystem.StartOperation(PackageName, operation); return operation; } diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/TiktokFileSystem.cs b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/TiktokFileSystem.cs index 00f0debf..f356fdda 100644 --- a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/TiktokFileSystem.cs +++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/TiktokFileSystem.cs @@ -124,7 +124,7 @@ internal class TiktokFileSystem : IFileSystem var operation = new TTFSRequestPackageVersionOperation(this, timeout); return operation; } - public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options) { var operation = new FSClearCacheFilesCompleteOperation(); return operation; diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/WechatFileSystem/WechatFileSystem.cs b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/WechatFileSystem/WechatFileSystem.cs index 36969ea4..696e0f0b 100644 --- a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/WechatFileSystem/WechatFileSystem.cs +++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/WechatFileSystem/WechatFileSystem.cs @@ -125,21 +125,21 @@ internal class WechatFileSystem : IFileSystem var operation = new WXFSRequestPackageVersionOperation(this, appendTimeTicks, timeout); return operation; } - public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options) { - if (clearMode == EFileClearMode.ClearAllBundleFiles.ToString()) + if (options.ClearMode == EFileClearMode.ClearAllBundleFiles.ToString()) { var operation = new WXFSClearAllBundleFilesOperation(this); return operation; } - else if (clearMode == EFileClearMode.ClearUnusedBundleFiles.ToString()) + else if (options.ClearMode == EFileClearMode.ClearUnusedBundleFiles.ToString()) { var operation = new WXFSClearUnusedBundleFilesAsync(this, manifest); return operation; } else { - string error = $"Invalid clear mode : {clearMode}"; + string error = $"Invalid clear mode : {options.ClearMode}"; var operation = new FSClearCacheFilesCompleteOperation(error); return operation; }