From 49949ecda58d6326ea0463bf94b6024ef62275f8 Mon Sep 17 00:00:00 2001 From: hevinci Date: Fri, 18 Nov 2022 21:33:58 +0800 Subject: [PATCH] Update runtime code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化资源包缓存文件清理方式。 --- .../Loader/AssetBundleWebLoader.cs | 3 +- Assets/YooAsset/Runtime/AssetsPackage.cs | 37 +++++++++------ .../Runtime/CacheSystem/CacheSystem.cs | 13 +++--- ... ClearPackageUnusedCacheFilesOperation.cs} | 24 ++++------ ...rPackageUnusedCacheFilesOperation.cs.meta} | 0 ...eration.cs => DownloadPackageOperation.cs} | 12 ++--- ....meta => DownloadPackageOperation.cs.meta} | 0 ...n.cs => UpdatePackageManifestOperation.cs} | 12 ++--- ...=> UpdatePackageManifestOperation.cs.meta} | 0 ...on.cs => UpdatePackageVersionOperation.cs} | 18 ++++---- ... => UpdatePackageVersionOperation.cs.meta} | 0 .../Runtime/PatchSystem/PatchBundle.cs | 45 ++++++++++++++++--- .../Runtime/PatchSystem/PatchManifest.cs | 2 +- .../PatchSystem/PlayMode/HostPlayModeImpl.cs | 12 ++--- Assets/YooAsset/Runtime/Utility/YooHelper.cs | 11 ++--- Assets/YooAsset/Runtime/YooAssets.cs | 10 ----- Assets/YooAsset/Runtime/YooAssetsExtension.cs | 6 +-- 17 files changed, 115 insertions(+), 90 deletions(-) rename Assets/YooAsset/Runtime/PatchSystem/Operations/{ClearUnusedCacheFilesOperation.cs => ClearPackageUnusedCacheFilesOperation.cs} (82%) rename Assets/YooAsset/Runtime/PatchSystem/Operations/{ClearUnusedCacheFilesOperation.cs.meta => ClearPackageUnusedCacheFilesOperation.cs.meta} (100%) rename Assets/YooAsset/Runtime/PatchSystem/Operations/{UpdatePackageOperation.cs => DownloadPackageOperation.cs} (90%) rename Assets/YooAsset/Runtime/PatchSystem/Operations/{UpdatePackageOperation.cs.meta => DownloadPackageOperation.cs.meta} (100%) rename Assets/YooAsset/Runtime/PatchSystem/Operations/{UpdateManifestOperation.cs => UpdatePackageManifestOperation.cs} (91%) rename Assets/YooAsset/Runtime/PatchSystem/Operations/{UpdateManifestOperation.cs.meta => UpdatePackageManifestOperation.cs.meta} (100%) rename Assets/YooAsset/Runtime/PatchSystem/Operations/{UpdateStaticVersionOperation.cs => UpdatePackageVersionOperation.cs} (79%) rename Assets/YooAsset/Runtime/PatchSystem/Operations/{UpdateStaticVersionOperation.cs.meta => UpdatePackageVersionOperation.cs.meta} (100%) diff --git a/Assets/YooAsset/Runtime/AssetSystem/Loader/AssetBundleWebLoader.cs b/Assets/YooAsset/Runtime/AssetSystem/Loader/AssetBundleWebLoader.cs index a626247..54785ba 100644 --- a/Assets/YooAsset/Runtime/AssetSystem/Loader/AssetBundleWebLoader.cs +++ b/Assets/YooAsset/Runtime/AssetSystem/Loader/AssetBundleWebLoader.cs @@ -163,7 +163,8 @@ namespace YooAsset // 5. 从WEB网站获取AssetBundle文件 if (_steps == ESteps.LoadWebFile) { - _webRequest = UnityWebRequestAssetBundle.GetAssetBundle(_fileLoadPath, Hash128.Parse(MainBundleInfo.Bundle.FileHash)); + var hash = Hash128.Parse(MainBundleInfo.Bundle.FileHash); + _webRequest = UnityWebRequestAssetBundle.GetAssetBundle(_fileLoadPath, hash); _webRequest.SendWebRequest(); _steps = ESteps.CheckLoadWebFile; } diff --git a/Assets/YooAsset/Runtime/AssetsPackage.cs b/Assets/YooAsset/Runtime/AssetsPackage.cs index c9ab51b..6fddd76 100644 --- a/Assets/YooAsset/Runtime/AssetsPackage.cs +++ b/Assets/YooAsset/Runtime/AssetsPackage.cs @@ -185,24 +185,24 @@ namespace YooAsset /// 向网络端请求最新的资源版本 /// /// 超时时间(默认值:60秒) - public UpdateStaticVersionOperation UpdateStaticVersionAsync(int timeout = 60) + public UpdatePackageVersionOperation UpdatePackageVersionAsync(int timeout = 60) { DebugCheckInitialize(); if (_playMode == EPlayMode.EditorSimulateMode) { - var operation = new EditorPlayModeUpdateStaticVersionOperation(); + var operation = new EditorPlayModeUpdatePackageVersionOperation(); OperationSystem.StartOperation(operation); return operation; } else if (_playMode == EPlayMode.OfflinePlayMode) { - var operation = new OfflinePlayModeUpdateStaticVersionOperation(); + var operation = new OfflinePlayModeUpdatePackageVersionOperation(); OperationSystem.StartOperation(operation); return operation; } else if (_playMode == EPlayMode.HostPlayMode) { - return _hostPlayModeImpl.UpdateStaticVersionAsync(PackageName, timeout); + return _hostPlayModeImpl.UpdatePackageVersionAsync(PackageName, timeout); } else { @@ -215,25 +215,25 @@ namespace YooAsset /// /// 更新的包裹版本 /// 超时时间(默认值:60秒) - public UpdateManifestOperation UpdateManifestAsync(string packageVersion, int timeout = 60) + public UpdatePackageManifestOperation UpdatePackageManifestAsync(string packageVersion, int timeout = 60) { DebugCheckInitialize(); DebugCheckUpdateManifest(); if (_playMode == EPlayMode.EditorSimulateMode) { - var operation = new EditorPlayModeUpdateManifestOperation(); + var operation = new EditorPlayModeUpdatePackageManifestOperation(); OperationSystem.StartOperation(operation); return operation; } else if (_playMode == EPlayMode.OfflinePlayMode) { - var operation = new OfflinePlayModeUpdateManifestOperation(); + var operation = new OfflinePlayModeUpdatePackageManifestOperation(); OperationSystem.StartOperation(operation); return operation; } else if (_playMode == EPlayMode.HostPlayMode) { - return _hostPlayModeImpl.UpdatePatchManifestAsync(PackageName, packageVersion, timeout); + return _hostPlayModeImpl.UpdatePackageManifestAsync(PackageName, packageVersion, timeout); } else { @@ -270,7 +270,18 @@ namespace YooAsset } /// - /// 获取包裹的版本信息 + /// 清理本地包裹未使用的缓存文件 + /// + public ClearPackageUnusedCacheFilesOperation ClearPackageUnusedCacheFilesAsync() + { + DebugCheckInitialize(); + var operation = new ClearPackageUnusedCacheFilesOperation(this); + OperationSystem.StartOperation(operation); + return operation; + } + + /// + /// 获取本地包裹的版本信息 /// public string GetPackageVersion() { @@ -899,24 +910,24 @@ namespace YooAsset /// /// 指定更新的包裹版本 /// 超时时间 - public UpdatePackageOperation UpdatePackageAsync(string packageVersion, int timeout = 60) + public DownloadPackageOperation DownloadPackageAsync(string packageVersion, int timeout = 60) { DebugCheckInitialize(); if (_playMode == EPlayMode.EditorSimulateMode) { - var operation = new EditorPlayModeUpdatePackageOperation(); + var operation = new EditorPlayModeDownloadPackageOperation(); OperationSystem.StartOperation(operation); return operation; } else if (_playMode == EPlayMode.OfflinePlayMode) { - var operation = new OfflinePlayModeUpdatePackageOperation(); + var operation = new OfflinePlayModeDownloadPackageOperation(); OperationSystem.StartOperation(operation); return operation; } else if (_playMode == EPlayMode.HostPlayMode) { - return _hostPlayModeImpl.UpdatePackageAsync(PackageName, packageVersion, timeout); + return _hostPlayModeImpl.DownloadPackageAsync(PackageName, packageVersion, timeout); } else { diff --git a/Assets/YooAsset/Runtime/CacheSystem/CacheSystem.cs b/Assets/YooAsset/Runtime/CacheSystem/CacheSystem.cs index 4549745..3ee5b92 100644 --- a/Assets/YooAsset/Runtime/CacheSystem/CacheSystem.cs +++ b/Assets/YooAsset/Runtime/CacheSystem/CacheSystem.cs @@ -2,7 +2,6 @@ using System.IO; using System.Collections; using System.Collections.Generic; -using UnityEngine; namespace YooAsset { @@ -30,8 +29,8 @@ namespace YooAsset /// public static bool IsCached(PatchBundle patchBundle) { - string fileHash = patchBundle.FileHash; - if (_cachedDic.ContainsKey(fileHash)) + string cacheKey = patchBundle.CacheKey; + if (_cachedDic.ContainsKey(cacheKey)) { string filePath = patchBundle.CachedFilePath; if (File.Exists(filePath)) @@ -40,7 +39,7 @@ namespace YooAsset } else { - _cachedDic.Remove(fileHash); + _cachedDic.Remove(cacheKey); YooLogger.Error($"Cache file is missing : {filePath}"); return false; } @@ -56,12 +55,12 @@ namespace YooAsset /// public static void CacheBundle(PatchBundle patchBundle) { - string fileHash = patchBundle.FileHash; - if (_cachedDic.ContainsKey(fileHash) == false) + string cacheKey = patchBundle.CacheKey; + if (_cachedDic.ContainsKey(cacheKey) == false) { string filePath = patchBundle.CachedFilePath; YooLogger.Log($"Cache verify file : {filePath}"); - _cachedDic.Add(fileHash, patchBundle); + _cachedDic.Add(cacheKey, patchBundle); } } diff --git a/Assets/YooAsset/Runtime/PatchSystem/Operations/ClearUnusedCacheFilesOperation.cs b/Assets/YooAsset/Runtime/PatchSystem/Operations/ClearPackageUnusedCacheFilesOperation.cs similarity index 82% rename from Assets/YooAsset/Runtime/PatchSystem/Operations/ClearUnusedCacheFilesOperation.cs rename to Assets/YooAsset/Runtime/PatchSystem/Operations/ClearPackageUnusedCacheFilesOperation.cs index 5c72672..0091afc 100644 --- a/Assets/YooAsset/Runtime/PatchSystem/Operations/ClearUnusedCacheFilesOperation.cs +++ b/Assets/YooAsset/Runtime/PatchSystem/Operations/ClearPackageUnusedCacheFilesOperation.cs @@ -5,9 +5,9 @@ using System.IO; namespace YooAsset { /// - /// 清理未使用的缓存资源操作类 + /// 清理本地包裹未使用的缓存文件 /// - public sealed class ClearUnusedCacheFilesOperation : AsyncOperationBase + public sealed class ClearPackageUnusedCacheFilesOperation : AsyncOperationBase { private enum ESteps { @@ -17,14 +17,14 @@ namespace YooAsset Done, } - private readonly List _packages; + private readonly AssetsPackage _package; private ESteps _steps = ESteps.None; private List _unusedCacheFilePaths; private int _unusedFileTotalCount = 0; - internal ClearUnusedCacheFilesOperation(List packages) + internal ClearPackageUnusedCacheFilesOperation(AssetsPackage package) { - _packages = packages; + _package = package; } internal override void Start() { @@ -84,27 +84,19 @@ namespace YooAsset /// private List GetUnusedCacheFilePaths() { - string cacheFolderPath = PersistentHelper.GetCacheFolderPath(); + string cacheFolderPath = PersistentHelper.GetCacheFolderPath(_package.PackageName); if (Directory.Exists(cacheFolderPath) == false) return new List(); - // 获取所有缓存文件 DirectoryInfo directoryInfo = new DirectoryInfo(cacheFolderPath); FileInfo[] fileInfos = directoryInfo.GetFiles(); List result = new List(fileInfos.Length); foreach (FileInfo fileInfo in fileInfos) { - bool used = false; - foreach (var package in _packages) + if (_package.IsIncludeBundleFile(fileInfo.Name) == false) { - if (package.IsIncludeBundleFile(fileInfo.Name)) - { - used = true; - break; - } - } - if (used == false) result.Add(fileInfo.FullName); + } } return result; } diff --git a/Assets/YooAsset/Runtime/PatchSystem/Operations/ClearUnusedCacheFilesOperation.cs.meta b/Assets/YooAsset/Runtime/PatchSystem/Operations/ClearPackageUnusedCacheFilesOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/PatchSystem/Operations/ClearUnusedCacheFilesOperation.cs.meta rename to Assets/YooAsset/Runtime/PatchSystem/Operations/ClearPackageUnusedCacheFilesOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageOperation.cs b/Assets/YooAsset/Runtime/PatchSystem/Operations/DownloadPackageOperation.cs similarity index 90% rename from Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageOperation.cs rename to Assets/YooAsset/Runtime/PatchSystem/Operations/DownloadPackageOperation.cs index 3f4d89b..41e2a56 100644 --- a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageOperation.cs +++ b/Assets/YooAsset/Runtime/PatchSystem/Operations/DownloadPackageOperation.cs @@ -5,7 +5,7 @@ using System.IO; namespace YooAsset { - public abstract class UpdatePackageOperation : AsyncOperationBase + public abstract class DownloadPackageOperation : AsyncOperationBase { /// /// 创建包裹下载器 @@ -19,7 +19,7 @@ namespace YooAsset /// /// 编辑器下模拟运行的更新资源包裹操作 /// - internal sealed class EditorPlayModeUpdatePackageOperation : UpdatePackageOperation + internal sealed class EditorPlayModeDownloadPackageOperation : DownloadPackageOperation { internal override void Start() { @@ -43,7 +43,7 @@ namespace YooAsset /// /// 离线模式的更新资源包裹操作 /// - internal sealed class OfflinePlayModeUpdatePackageOperation : UpdatePackageOperation + internal sealed class OfflinePlayModeDownloadPackageOperation : DownloadPackageOperation { internal override void Start() { @@ -67,7 +67,7 @@ namespace YooAsset /// /// 联机模式的更新资源包裹操作 /// - internal sealed class HostPlayModeUpdatePackageOperation : UpdatePackageOperation + internal sealed class HostPlayModeDownloadPackageOperation : DownloadPackageOperation { private enum ESteps { @@ -86,7 +86,7 @@ namespace YooAsset private UnityWebDataRequester _downloader; private PatchManifest _remotePatchManifest; - internal HostPlayModeUpdatePackageOperation(HostPlayModeImpl impl, string packageName, string packageVersion, int timeout) + internal HostPlayModeDownloadPackageOperation(HostPlayModeImpl impl, string packageName, string packageVersion, int timeout) { _impl = impl; _packageName = packageName; @@ -160,7 +160,7 @@ namespace YooAsset } else { - YooLogger.Error($"{nameof(UpdatePackageOperation)} status is failed !"); + YooLogger.Error($"{nameof(DownloadPackageOperation)} status is failed !"); var operation = new PackageDownloaderOperation(null, downloadingMaxNumber, failedTryAgain, timeout); return operation; } diff --git a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageOperation.cs.meta b/Assets/YooAsset/Runtime/PatchSystem/Operations/DownloadPackageOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageOperation.cs.meta rename to Assets/YooAsset/Runtime/PatchSystem/Operations/DownloadPackageOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateManifestOperation.cs b/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageManifestOperation.cs similarity index 91% rename from Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateManifestOperation.cs rename to Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageManifestOperation.cs index 0f485fb..b93c243 100644 --- a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateManifestOperation.cs +++ b/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageManifestOperation.cs @@ -6,9 +6,9 @@ using System.IO; namespace YooAsset { /// - /// 更新清单操作 + /// 向远端请求并更新补丁清单 /// - public abstract class UpdateManifestOperation : AsyncOperationBase + public abstract class UpdatePackageManifestOperation : AsyncOperationBase { /// /// 是否发现了新的补丁清单 @@ -19,7 +19,7 @@ namespace YooAsset /// /// 编辑器下模拟运行的更新清单操作 /// - internal sealed class EditorPlayModeUpdateManifestOperation : UpdateManifestOperation + internal sealed class EditorPlayModeUpdatePackageManifestOperation : UpdatePackageManifestOperation { internal override void Start() { @@ -33,7 +33,7 @@ namespace YooAsset /// /// 离线模式的更新清单操作 /// - internal sealed class OfflinePlayModeUpdateManifestOperation : UpdateManifestOperation + internal sealed class OfflinePlayModeUpdatePackageManifestOperation : UpdatePackageManifestOperation { internal override void Start() { @@ -48,7 +48,7 @@ namespace YooAsset /// 联机模式的更新清单操作 /// 注意:优先比对沙盒清单哈希值,如果有变化就更新远端清单文件,并保存到本地。 /// - internal sealed class HostPlayModeUpdateManifestOperation : UpdateManifestOperation + internal sealed class HostPlayModeUpdatePackageManifestOperation : UpdatePackageManifestOperation { private enum ESteps { @@ -77,7 +77,7 @@ namespace YooAsset private ESteps _steps = ESteps.None; private float _verifyTime; - internal HostPlayModeUpdateManifestOperation(HostPlayModeImpl impl, string packageName, string packageVersion, int timeout) + internal HostPlayModeUpdatePackageManifestOperation(HostPlayModeImpl impl, string packageName, string packageVersion, int timeout) { _impl = impl; _packageName = packageName; diff --git a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateManifestOperation.cs.meta b/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageManifestOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateManifestOperation.cs.meta rename to Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageManifestOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateStaticVersionOperation.cs b/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageVersionOperation.cs similarity index 79% rename from Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateStaticVersionOperation.cs rename to Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageVersionOperation.cs index f86fc6a..56c0dd5 100644 --- a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateStaticVersionOperation.cs +++ b/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageVersionOperation.cs @@ -5,9 +5,9 @@ using UnityEngine; namespace YooAsset { /// - /// 获取包裹的最新版本 + /// 请求远端包裹的最新版本 /// - public abstract class UpdateStaticVersionOperation : AsyncOperationBase + public abstract class UpdatePackageVersionOperation : AsyncOperationBase { /// /// 当前最新的包裹版本 @@ -16,9 +16,9 @@ namespace YooAsset } /// - /// 编辑器下模拟运行的获取包裹的最新版本操作 + /// 编辑器下模拟模式的请求远端包裹的最新版本 /// - internal sealed class EditorPlayModeUpdateStaticVersionOperation : UpdateStaticVersionOperation + internal sealed class EditorPlayModeUpdatePackageVersionOperation : UpdatePackageVersionOperation { internal override void Start() { @@ -30,9 +30,9 @@ namespace YooAsset } /// - /// 离线模式的获取包裹的最新版本操作 + /// 离线模式的请求远端包裹的最新版本 /// - internal sealed class OfflinePlayModeUpdateStaticVersionOperation : UpdateStaticVersionOperation + internal sealed class OfflinePlayModeUpdatePackageVersionOperation : UpdatePackageVersionOperation { internal override void Start() { @@ -44,9 +44,9 @@ namespace YooAsset } /// - /// 联机模式的获取包裹的最新版本操作 + /// 联机模式的请求远端包裹的最新版本 /// - internal sealed class HostPlayModeUpdateStaticVersionOperation : UpdateStaticVersionOperation + internal sealed class HostPlayModeUpdatePackageVersionOperation : UpdatePackageVersionOperation { private enum ESteps { @@ -63,7 +63,7 @@ namespace YooAsset private ESteps _steps = ESteps.None; private UnityWebDataRequester _downloader; - internal HostPlayModeUpdateStaticVersionOperation(HostPlayModeImpl impl, string packageName, int timeout) + internal HostPlayModeUpdatePackageVersionOperation(HostPlayModeImpl impl, string packageName, int timeout) { _impl = impl; _packageName = packageName; diff --git a/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateStaticVersionOperation.cs.meta b/Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageVersionOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/PatchSystem/Operations/UpdateStaticVersionOperation.cs.meta rename to Assets/YooAsset/Runtime/PatchSystem/Operations/UpdatePackageVersionOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/PatchSystem/PatchBundle.cs b/Assets/YooAsset/Runtime/PatchSystem/PatchBundle.cs index 7db22c7..5a1db90 100644 --- a/Assets/YooAsset/Runtime/PatchSystem/PatchBundle.cs +++ b/Assets/YooAsset/Runtime/PatchSystem/PatchBundle.cs @@ -41,10 +41,11 @@ namespace YooAsset /// public string[] Tags; + /// - /// 文件名称 - /// - public string FileName { private set; get; } + /// 所属的包裹名称 + /// + private string _packageName; /// /// 缓存文件路径 @@ -57,7 +58,7 @@ namespace YooAsset if (string.IsNullOrEmpty(_cachedFilePath) == false) return _cachedFilePath; - string cacheRoot = PersistentHelper.GetCacheFolderPath(); + string cacheRoot = PersistentHelper.GetCacheFolderPath(_packageName); _cachedFilePath = $"{cacheRoot}/{FileName}"; return _cachedFilePath; } @@ -79,6 +80,34 @@ namespace YooAsset } } + /// + /// 文件名称 + /// + private string _fileName; + public string FileName + { + get + { + if (string.IsNullOrEmpty(_fileName)) + throw new Exception("Should never get here !"); + return _fileName; + } + } + + /// + /// 缓存查询Key + /// + private string _cacheKey; + public string CacheKey + { + get + { + if (string.IsNullOrEmpty(_cacheKey)) + throw new Exception("Should never get here !"); + return _cacheKey; + } + } + public PatchBundle(string bundleName, string fileHash, string fileCRC, long fileSize, bool isRawFile, byte loadMethod, string[] tags) { @@ -92,11 +121,13 @@ namespace YooAsset } /// - /// 解析文件名称 + /// 解析资源包 /// - public void ParseFileName(int nameStype) + public void ParseBundle(string packageName, int nameStype) { - FileName = PatchManifest.CreateBundleFileName(nameStype, BundleName, FileHash); + _packageName = packageName; + _cacheKey = $"{packageName}-{FileHash}"; + _fileName = PatchManifest.CreateBundleFileName(nameStype, BundleName, FileHash); } /// diff --git a/Assets/YooAsset/Runtime/PatchSystem/PatchManifest.cs b/Assets/YooAsset/Runtime/PatchSystem/PatchManifest.cs index 5b32a8d..8f25b97 100644 --- a/Assets/YooAsset/Runtime/PatchSystem/PatchManifest.cs +++ b/Assets/YooAsset/Runtime/PatchSystem/PatchManifest.cs @@ -290,7 +290,7 @@ namespace YooAsset // BundleList foreach (var patchBundle in patchManifest.BundleList) { - patchBundle.ParseFileName(patchManifest.OutputNameStyle); + patchBundle.ParseBundle(patchManifest.PackageName, patchManifest.OutputNameStyle); patchManifest.BundleDic.Add(patchBundle.BundleName, patchBundle); } diff --git a/Assets/YooAsset/Runtime/PatchSystem/PlayMode/HostPlayModeImpl.cs b/Assets/YooAsset/Runtime/PatchSystem/PlayMode/HostPlayModeImpl.cs index dc6964f..7c10a97 100644 --- a/Assets/YooAsset/Runtime/PatchSystem/PlayMode/HostPlayModeImpl.cs +++ b/Assets/YooAsset/Runtime/PatchSystem/PlayMode/HostPlayModeImpl.cs @@ -44,9 +44,9 @@ namespace YooAsset /// /// 异步更新资源版本号 /// - public UpdateStaticVersionOperation UpdateStaticVersionAsync(string packageName, int timeout) + public UpdatePackageVersionOperation UpdatePackageVersionAsync(string packageName, int timeout) { - var operation = new HostPlayModeUpdateStaticVersionOperation(this, packageName, timeout); + var operation = new HostPlayModeUpdatePackageVersionOperation(this, packageName, timeout); OperationSystem.StartOperation(operation); return operation; } @@ -54,9 +54,9 @@ namespace YooAsset /// /// 异步更新补丁清单 /// - public UpdateManifestOperation UpdatePatchManifestAsync(string packageName, string packageVersion, int timeout) + public UpdatePackageManifestOperation UpdatePackageManifestAsync(string packageName, string packageVersion, int timeout) { - var operation = new HostPlayModeUpdateManifestOperation(this, packageName, packageVersion, timeout); + var operation = new HostPlayModeUpdatePackageManifestOperation(this, packageName, packageVersion, timeout); OperationSystem.StartOperation(operation); return operation; } @@ -74,9 +74,9 @@ namespace YooAsset /// /// 异步更新资源包裹 /// - public UpdatePackageOperation UpdatePackageAsync(string packageName, string packageVersion, int timeout) + public DownloadPackageOperation DownloadPackageAsync(string packageName, string packageVersion, int timeout) { - var operation = new HostPlayModeUpdatePackageOperation(this, packageName, packageVersion, timeout); + var operation = new HostPlayModeDownloadPackageOperation(this, packageName, packageVersion, timeout); OperationSystem.StartOperation(operation); return operation; } diff --git a/Assets/YooAsset/Runtime/Utility/YooHelper.cs b/Assets/YooAsset/Runtime/Utility/YooHelper.cs index 6a3ccda..dadc15e 100644 --- a/Assets/YooAsset/Runtime/Utility/YooHelper.cs +++ b/Assets/YooAsset/Runtime/Utility/YooHelper.cs @@ -97,17 +97,18 @@ namespace YooAsset /// public static void DeleteCacheFolder() { - string directoryPath = GetCacheFolderPath(); - if (Directory.Exists(directoryPath)) - Directory.Delete(directoryPath, true); + string root = PathHelper.MakePersistentLoadPath(CacheFolderName); + if (Directory.Exists(root)) + Directory.Delete(root, true); } /// /// 获取缓存文件夹路径 /// - public static string GetCacheFolderPath() + public static string GetCacheFolderPath(string packageName) { - return PathHelper.MakePersistentLoadPath(CacheFolderName); + string root = PathHelper.MakePersistentLoadPath(CacheFolderName); + return $"{root}/{packageName}"; } #region 沙盒内清单相关 diff --git a/Assets/YooAsset/Runtime/YooAssets.cs b/Assets/YooAsset/Runtime/YooAssets.cs index 88bb81d..6c9c200 100644 --- a/Assets/YooAsset/Runtime/YooAssets.cs +++ b/Assets/YooAsset/Runtime/YooAssets.cs @@ -193,16 +193,6 @@ namespace YooAsset #endregion #region 沙盒相关 - /// - /// 清理未使用的缓存文件 - /// - public static ClearUnusedCacheFilesOperation ClearUnusedCacheFiles() - { - ClearUnusedCacheFilesOperation operation = new ClearUnusedCacheFilesOperation(_packages); - OperationSystem.StartOperation(operation); - return operation; - } - /// /// 获取内置文件夹名称 /// diff --git a/Assets/YooAsset/Runtime/YooAssetsExtension.cs b/Assets/YooAsset/Runtime/YooAssetsExtension.cs index 2d26021..be0ceb5 100644 --- a/Assets/YooAsset/Runtime/YooAssetsExtension.cs +++ b/Assets/YooAsset/Runtime/YooAssetsExtension.cs @@ -367,14 +367,14 @@ namespace YooAsset #region 包裹更新 /// - /// 创建资源包裹下载器,用于下载更新指定资源版本所有的资源包文件 + /// 资源包裹更新,用于下载更新指定资源版本所有的资源包文件 /// /// 指定更新的包裹版本 /// 超时时间 - public static UpdatePackageOperation UpdatePackageAsync(string packageVersion, int timeout = 60) + public static DownloadPackageOperation DownloadPackageAsync(string packageVersion, int timeout = 60) { DebugCheckDefaultPackageValid(); - return _defaultPackage.UpdatePackageAsync(packageVersion, timeout); + return _defaultPackage.DownloadPackageAsync(packageVersion, timeout); } #endregion