From b3a135e1a2815194cae3d8b13302e3c689931a09 Mon Sep 17 00:00:00 2001 From: hevinci Date: Tue, 10 Oct 2023 11:59:56 +0800 Subject: [PATCH] fix #178 --- .../Runtime/OperationSystem/AsyncOperationBase.cs | 3 +++ .../YooAsset/Runtime/OperationSystem/OperationSystem.cs | 8 +++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs b/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs index 51a1b45..75fe28b 100644 --- a/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs +++ b/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs @@ -78,6 +78,7 @@ namespace YooAsset internal abstract void Start(); internal abstract void Update(); + internal virtual void Abort() { } internal void SetPackageName(string packageName) { @@ -90,6 +91,7 @@ namespace YooAsset Status = EOperationStatus.Failed; Error = "user abort"; YooLogger.Warning($"Async operaiton has been abort : {this.GetType().Name}"); + Abort(); } } internal void SetFinish() @@ -102,6 +104,7 @@ namespace YooAsset internal void SetStart() { Status = EOperationStatus.Processing; + Start(); } /// diff --git a/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs b/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs index dfb1265..f80c6ea 100644 --- a/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs +++ b/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs @@ -59,16 +59,15 @@ namespace YooAsset break; var operation = _operations[i]; + if (operation.IsDone == false) + operation.Update(); + if (operation.IsDone) { // 注意:如果业务端发生异常,保证异步操作提前移除。 _operations.RemoveAt(i); operation.SetFinish(); } - else - { - operation.Update(); - } } } @@ -116,7 +115,6 @@ namespace YooAsset _newList.Add(operation); operation.SetPackageName(packageName); operation.SetStart(); - operation.Start(); } } } \ No newline at end of file