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)