From d980b55997f88374a0e8eb038a44dbec94f45668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Thu, 17 Oct 2024 10:51:17 +0800 Subject: [PATCH] update operation system --- .../Operation/DBFSLoadBundleOperation.cs | 7 ++----- .../Operation/DCFSLoadBundleOperation.cs | 7 ++----- .../YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs | 6 ++++++ .../Runtime/ResourceManager/Provider/ProviderOperation.cs | 3 --- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs index 7acac551..20aeb520 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs @@ -19,7 +19,6 @@ namespace YooAsset private readonly DefaultBuildinFileSystem _fileSystem; private readonly PackageBundle _bundle; private AssetBundleCreateRequest _createRequest; - private bool _isWaitForAsyncComplete = false; private ESteps _steps = ESteps.None; @@ -53,7 +52,7 @@ namespace YooAsset } } - if (_isWaitForAsyncComplete) + if (IsWaitForAsyncComplete) { if (_bundle.Encrypted) { @@ -85,7 +84,7 @@ namespace YooAsset { if (_createRequest != null) { - if (_isWaitForAsyncComplete) + if (IsWaitForAsyncComplete) { // 强制挂起主线程(注意:该操作会很耗时) YooLogger.Warning("Suspend the main thread to load unity bundle."); @@ -124,8 +123,6 @@ namespace YooAsset } internal override void InternalWaitForAsyncComplete() { - _isWaitForAsyncComplete = true; - while (true) { if (ExecuteWhileDone()) diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs index 9124ab72..7a863e07 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs @@ -19,7 +19,6 @@ namespace YooAsset protected readonly PackageBundle _bundle; protected FSDownloadFileOperation _downloadFileOp; protected AssetBundleCreateRequest _createRequest; - protected bool _isWaitForAsyncComplete = false; protected ESteps _steps = ESteps.None; @@ -90,7 +89,7 @@ namespace YooAsset } } - if (_isWaitForAsyncComplete) + if (IsWaitForAsyncComplete) { if (_bundle.Encrypted) { @@ -122,7 +121,7 @@ namespace YooAsset { if (_createRequest != null) { - if (_isWaitForAsyncComplete) + if (IsWaitForAsyncComplete) { // 强制挂起主线程(注意:该操作会很耗时) YooLogger.Warning("Suspend the main thread to load unity bundle."); @@ -197,8 +196,6 @@ namespace YooAsset } internal override void InternalWaitForAsyncComplete() { - _isWaitForAsyncComplete = true; - while (true) { if (_downloadFileOp != null) diff --git a/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs b/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs index 11f5cab9..83a54b97 100644 --- a/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs +++ b/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs @@ -12,6 +12,11 @@ namespace YooAsset private string _packageName = null; private int _whileFrame = 1000; + /// + /// 等待异步执行完成 + /// + internal bool IsWaitForAsyncComplete = false; + /// /// 是否已经完成 /// @@ -168,6 +173,7 @@ namespace YooAsset if (IsDone) return; + IsWaitForAsyncComplete = true; InternalWaitForAsyncComplete(); } diff --git a/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs index 33a1efbd..501aeed2 100644 --- a/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs +++ b/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs @@ -70,7 +70,6 @@ namespace YooAsset protected ESteps _steps = ESteps.None; protected LoadBundleFileOperation LoadBundleFileOp { private set; get; } protected LoadDependBundleFileOperation LoadDependBundleFileOp { private set; get; } - protected bool IsWaitForAsyncComplete { private set; get; } = false; private readonly List _handles = new List(); @@ -93,8 +92,6 @@ namespace YooAsset internal override void InternalWaitForAsyncComplete() { - IsWaitForAsyncComplete = true; - while (true) { if (LoadDependBundleFileOp != null)