From 6d216561f86e1a68c679e4737e8539e51500f916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= <hevinci@hotmail.com> Date: Mon, 10 Feb 2025 20:00:48 +0800 Subject: [PATCH] fix #468 --- .../DefaultBuildinFileSystem.cs | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs index c3bb6a8d..25ec5da3 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs @@ -113,12 +113,13 @@ namespace YooAsset } public virtual FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param) { + // 注意:业务层的解压下载器会依赖内置文件系统的下载方法 param.ImportFilePath = GetBuildinFileLoadPath(bundle); return _unpackFileSystem.DownloadFileAsync(bundle, param); } public virtual FSLoadBundleOperation LoadBundleFile(PackageBundle bundle) { - if (NeedUnpack(bundle)) + if (IsUnpackBundleFile(bundle)) { return _unpackFileSystem.LoadBundleFile(bundle); } @@ -216,11 +217,7 @@ namespace YooAsset } public virtual bool NeedUnpack(PackageBundle bundle) { - if (Belong(bundle) == false) - return false; - -#if UNITY_ANDROID - if (bundle.BundleType == (int)EBuildBundleType.RawBundle || bundle.Encrypted) + if (IsUnpackBundleFile(bundle)) { return _unpackFileSystem.Exists(bundle) == false; } @@ -228,9 +225,6 @@ namespace YooAsset { return false; } -#else - return false; -#endif } public virtual bool NeedImport(PackageBundle bundle) { @@ -239,14 +233,14 @@ namespace YooAsset public virtual string GetBundleFilePath(PackageBundle bundle) { - if (NeedUnpack(bundle)) + if (IsUnpackBundleFile(bundle)) return _unpackFileSystem.GetBundleFilePath(bundle); return GetBuildinFileLoadPath(bundle); } public virtual byte[] ReadBundleFileData(PackageBundle bundle) { - if (NeedUnpack(bundle)) + if (IsUnpackBundleFile(bundle)) return _unpackFileSystem.ReadBundleFileData(bundle); if (Exists(bundle) == false) @@ -277,7 +271,7 @@ namespace YooAsset } public virtual string ReadBundleFileText(PackageBundle bundle) { - if (NeedUnpack(bundle)) + if (IsUnpackBundleFile(bundle)) return _unpackFileSystem.ReadBundleFileText(bundle); if (Exists(bundle) == false) @@ -343,6 +337,24 @@ namespace YooAsset return YooAssetSettingsData.GetYooResourcesLoadPath(PackageName, fileName); } + /// <summary> + /// 是否属于解压资源包文件 + /// </summary> + protected bool IsUnpackBundleFile(PackageBundle bundle) + { + if (Belong(bundle) == false) + return false; + +#if UNITY_ANDROID + if (bundle.BundleType == (int)EBuildBundleType.RawBundle || bundle.Encrypted) + return true; + else + return false; +#else + return false; +#endif + } + /// <summary> /// 记录文件信息 /// </summary>