From 9f09b6c5261e9e12866fa50e6034e4a42532c3dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Mon, 21 Jul 2025 15:52:07 +0800 Subject: [PATCH] update file system --- .../Operation/DBFSInitializeOperation.cs | 34 ++++----------- .../Operation/DBFSLoadBundleOperation.cs | 41 ++++++++++--------- .../CopyBuildinPackageManifestOperation.cs | 36 ++++++++-------- .../Operation/DWRFSLoadBundleOperation.cs | 2 +- .../Operation/DWSFSInitializeOperation.cs | 16 -------- .../Operation/DWSFSLoadBundleOperation.cs | 2 +- .../LoadWebServerCatalogFileOperation.cs | 3 -- .../LoadWebEncryptAssetBundleOperation.cs | 9 +--- .../LoadWebNormalAssetBundleOperation.cs | 7 +--- 9 files changed, 54 insertions(+), 96 deletions(-) diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSInitializeOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSInitializeOperation.cs index ac46ab57..c6eebf61 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSInitializeOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSInitializeOperation.cs @@ -17,7 +17,7 @@ namespace YooAsset private readonly DefaultBuildinFileSystem _fileSystem; private CopyBuildinPackageManifestOperation _copyBuildinPackageManifestOp; private FSInitializeFileSystemOperation _initUnpackFIleSystemOp; - private LoadBuildinCatalogFileOperation _loadCatalogFileOp; + private LoadBuildinCatalogFileOperation _loadBuildinCatalogFileOp; private ESteps _steps = ESteps.None; internal DBFSInitializeOperation(DefaultBuildinFileSystem fileSystem) @@ -103,34 +103,18 @@ namespace YooAsset if (_steps == ESteps.LoadCatalogFile) { - if (_loadCatalogFileOp == null) + if (_loadBuildinCatalogFileOp == null) { -#if UNITY_EDITOR - /* - // 兼容性初始化 - // 说明:内置文件系统在编辑器下运行时需要动态生成 - string packageRoot = _fileSystem.FileRoot; - bool result = DefaultBuildinFileSystemBuild.CreateBuildinCatalogFile(_fileSystem.ManifestServices, _fileSystem.PackageName, packageRoot); - if (result == false) - { - _steps = ESteps.Done; - Status = EOperationStatus.Failed; - Error = $"Create package catalog file failed ! See the detail error in console !"; - return; - } - */ -#endif - - _loadCatalogFileOp = new LoadBuildinCatalogFileOperation(_fileSystem); - _loadCatalogFileOp.StartOperation(); - AddChildOperation(_loadCatalogFileOp); + _loadBuildinCatalogFileOp = new LoadBuildinCatalogFileOperation(_fileSystem); + _loadBuildinCatalogFileOp.StartOperation(); + AddChildOperation(_loadBuildinCatalogFileOp); } - _loadCatalogFileOp.UpdateOperation(); - if (_loadCatalogFileOp.IsDone == false) + _loadBuildinCatalogFileOp.UpdateOperation(); + if (_loadBuildinCatalogFileOp.IsDone == false) return; - if (_loadCatalogFileOp.Status == EOperationStatus.Succeed) + if (_loadBuildinCatalogFileOp.Status == EOperationStatus.Succeed) { _steps = ESteps.Done; Status = EOperationStatus.Succeed; @@ -139,7 +123,7 @@ namespace YooAsset { _steps = ESteps.Done; Status = EOperationStatus.Failed; - Error = _loadCatalogFileOp.Error; + Error = _loadBuildinCatalogFileOp.Error; } } } diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs index 7abc7aed..9c363233 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs @@ -104,27 +104,28 @@ namespace YooAsset } } - if (_assetBundle != null) + if (_assetBundle == null) { - _steps = ESteps.Done; - Result = new AssetBundleResult(_fileSystem, _bundle, _assetBundle, _managedStream); - Status = EOperationStatus.Succeed; - return; - } - - if (_bundle.Encrypted) - { - _steps = ESteps.Done; - Status = EOperationStatus.Failed; - Error = $"Failed to load encrypted buildin asset bundle file : {_bundle.BundleName}"; - YooLogger.Error(Error); + if (_bundle.Encrypted) + { + _steps = ESteps.Done; + Status = EOperationStatus.Failed; + Error = $"Failed to load encrypted buildin asset bundle file : {_bundle.BundleName}"; + YooLogger.Error(Error); + } + else + { + _steps = ESteps.Done; + Status = EOperationStatus.Failed; + Error = $"Failed to load buildin asset bundle file : {_bundle.BundleName}"; + YooLogger.Error(Error); + } } else { _steps = ESteps.Done; - Status = EOperationStatus.Failed; - Error = $"Failed to load buildin asset bundle file : {_bundle.BundleName}"; - YooLogger.Error(Error); + Result = new AssetBundleResult(_fileSystem, _bundle, _assetBundle, _managedStream); + Status = EOperationStatus.Succeed; } } } @@ -176,13 +177,15 @@ namespace YooAsset if (_steps == ESteps.LoadBuildinRawBundle) { + string filePath = _fileSystem.GetBuildinFileLoadPath(_bundle); + #if UNITY_ANDROID //TODO : 安卓平台内置文件属于APK压缩包内的文件。 _steps = ESteps.Done; - Result = new RawBundleResult(_fileSystem, _bundle); - Status = EOperationStatus.Succeed; + Status = EOperationStatus.Failed; + Error = $"Can not load android buildin raw bundle file : {filePath}"; + YooLogger.Error(Error); #else - string filePath = _fileSystem.GetBuildinFileLoadPath(_bundle); if (File.Exists(filePath)) { _steps = ESteps.Done; diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/CopyBuildinPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/CopyBuildinPackageManifestOperation.cs index 7b4f417d..1740db55 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/CopyBuildinPackageManifestOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/CopyBuildinPackageManifestOperation.cs @@ -20,8 +20,8 @@ namespace YooAsset private readonly DefaultBuildinFileSystem _fileSystem; private RequestBuildinPackageVersionOperation _requestBuildinPackageVersionOp; - private UnityWebFileRequestOperation _hashFileRequestOp; - private UnityWebFileRequestOperation _manifestFileRequestOp; + private UnityWebFileRequestOperation _hashWebFileRequestOp; + private UnityWebFileRequestOperation _manifestWebFileRequestOp; private string _buildinPackageVersion; private ESteps _steps = ESteps.None; @@ -78,21 +78,21 @@ namespace YooAsset if (_steps == ESteps.UnpackHashFile) { - if (_hashFileRequestOp == null) + if (_hashWebFileRequestOp == null) { string sourcePath = _fileSystem.GetBuildinPackageHashFilePath(_buildinPackageVersion); string destPath = GetCopyPackageHashDestPath(_buildinPackageVersion); string url = DownloadSystemHelper.ConvertToWWWPath(sourcePath); - _hashFileRequestOp = new UnityWebFileRequestOperation(url, destPath, 60); - _hashFileRequestOp.StartOperation(); - AddChildOperation(_hashFileRequestOp); + _hashWebFileRequestOp = new UnityWebFileRequestOperation(url, destPath, 60); + _hashWebFileRequestOp.StartOperation(); + AddChildOperation(_hashWebFileRequestOp); } - _hashFileRequestOp.UpdateOperation(); - if (_hashFileRequestOp.IsDone == false) + _hashWebFileRequestOp.UpdateOperation(); + if (_hashWebFileRequestOp.IsDone == false) return; - if (_hashFileRequestOp.Status == EOperationStatus.Succeed) + if (_hashWebFileRequestOp.Status == EOperationStatus.Succeed) { _steps = ESteps.CheckManifestFile; } @@ -100,7 +100,7 @@ namespace YooAsset { _steps = ESteps.Done; Status = EOperationStatus.Failed; - Error = _hashFileRequestOp.Error; + Error = _hashWebFileRequestOp.Error; } } @@ -119,21 +119,21 @@ namespace YooAsset if (_steps == ESteps.UnpackManifestFile) { - if (_manifestFileRequestOp == null) + if (_manifestWebFileRequestOp == null) { string sourcePath = _fileSystem.GetBuildinPackageManifestFilePath(_buildinPackageVersion); string destPath = GetCopyPackageManifestDestPath(_buildinPackageVersion); string url = DownloadSystemHelper.ConvertToWWWPath(sourcePath); - _manifestFileRequestOp = new UnityWebFileRequestOperation(url, destPath, 60); - _manifestFileRequestOp.StartOperation(); - AddChildOperation(_manifestFileRequestOp); + _manifestWebFileRequestOp = new UnityWebFileRequestOperation(url, destPath, 60); + _manifestWebFileRequestOp.StartOperation(); + AddChildOperation(_manifestWebFileRequestOp); } - _manifestFileRequestOp.UpdateOperation(); - if (_manifestFileRequestOp.IsDone == false) + _manifestWebFileRequestOp.UpdateOperation(); + if (_manifestWebFileRequestOp.IsDone == false) return; - if (_manifestFileRequestOp.Status == EOperationStatus.Succeed) + if (_manifestWebFileRequestOp.Status == EOperationStatus.Succeed) { _steps = ESteps.Done; Status = EOperationStatus.Succeed; @@ -142,7 +142,7 @@ namespace YooAsset { _steps = ESteps.Done; Status = EOperationStatus.Failed; - Error = _manifestFileRequestOp.Error; + Error = _manifestWebFileRequestOp.Error; } } } diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs index a3458bfe..2c65f0e8 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs @@ -67,7 +67,7 @@ namespace YooAsset { _steps = ESteps.Done; Status = EOperationStatus.Failed; - Error = $"{nameof(LoadWebAssetBundleOperation)} loaded asset bundle is null !"; + Error = $"{nameof(DWRFSLoadAssetBundleOperation)} loaded asset bundle is null !"; } else { diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSInitializeOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSInitializeOperation.cs index caca6ae8..8d44a15f 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSInitializeOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSInitializeOperation.cs @@ -32,22 +32,6 @@ namespace YooAsset { if (_loadCatalogFileOp == null) { -#if UNITY_EDITOR - /* - // 兼容性初始化 - // 说明:内置文件系统在编辑器下运行时需要动态生成 - string packageRoot = _fileSystem.FileRoot; - bool result = DefaultBuildinFileSystemBuild.CreateBuildinCatalogFile(_fileSystem.ManifestServices, _fileSystem.PackageName, packageRoot); - if (result == false) - { - _steps = ESteps.Done; - Status = EOperationStatus.Failed; - Error = $"Create package catalog file failed ! See the detail error in console !"; - return; - } - */ -#endif - _loadCatalogFileOp = new LoadWebServerCatalogFileOperation(_fileSystem, 60); _loadCatalogFileOp.StartOperation(); AddChildOperation(_loadCatalogFileOp); diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs index 32785897..9d80ebb1 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs @@ -67,7 +67,7 @@ namespace YooAsset { _steps = ESteps.Done; Status = EOperationStatus.Failed; - Error = $"{nameof(LoadWebAssetBundleOperation)} loaded asset bundle is null !"; + Error = $"{nameof(DWSFSLoadAssetBundleOperation)} loaded asset bundle is null !"; } else { diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/LoadWebServerCatalogFileOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/LoadWebServerCatalogFileOperation.cs index adca34d7..8fa2ec29 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/LoadWebServerCatalogFileOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/LoadWebServerCatalogFileOperation.cs @@ -1,7 +1,4 @@ using System; -using System.IO; -using System.Collections; -using System.Collections.Generic; namespace YooAsset { diff --git a/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/LoadWebEncryptAssetBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/LoadWebEncryptAssetBundleOperation.cs index 5937459e..a2a3764d 100644 --- a/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/LoadWebEncryptAssetBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/LoadWebEncryptAssetBundleOperation.cs @@ -13,10 +13,10 @@ namespace YooAsset Done, } - private UnityWebDataRequestOperation _unityWebDataRequestOp; private readonly PackageBundle _bundle; private readonly DownloadFileOptions _options; private readonly IWebDecryptionServices _decryptionServices; + private UnityWebDataRequestOperation _unityWebDataRequestOp; protected int _requestCount = 0; protected float _tryAgainTimer; @@ -53,6 +53,7 @@ namespace YooAsset string url = GetRequestURL(); _unityWebDataRequestOp = new UnityWebDataRequestOperation(url, 0); _unityWebDataRequestOp.StartOperation(); + AddChildOperation(_unityWebDataRequestOp); _steps = ESteps.CheckRequest; } @@ -115,12 +116,6 @@ namespace YooAsset } } } - internal override void InternalAbort() - { - _steps = ESteps.Done; - if (_unityWebDataRequestOp != null) - _unityWebDataRequestOp.AbortOperation(); - } /// /// 加载加密资源文件 diff --git a/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/LoadWebNormalAssetBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/LoadWebNormalAssetBundleOperation.cs index 95843e55..1e9e9e0b 100644 --- a/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/LoadWebNormalAssetBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/LoadWebNormalAssetBundleOperation.cs @@ -45,6 +45,7 @@ namespace YooAsset string url = GetRequestURL(); _unityAssetBundleRequestOp = new UnityAssetBundleRequestOperation(_bundle, _disableUnityWebCache, url); _unityAssetBundleRequestOp.StartOperation(); + AddChildOperation(_unityAssetBundleRequestOp); _steps = ESteps.CheckRequest; } @@ -96,12 +97,6 @@ namespace YooAsset } } } - internal override void InternalAbort() - { - _steps = ESteps.Done; - if (_unityAssetBundleRequestOp != null) - _unityAssetBundleRequestOp.AbortOperation(); - } /// /// 获取网络请求地址