From 20ae423bbe075d10ce6f3e9b22d470dfb3c07495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= <33317070@qq.com> Date: Tue, 2 Jun 2026 10:53:35 +0800 Subject: [PATCH] fix #734 --- .../ResourceManager/Operation/UnloadAllAssetsOperation.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Assets/YooAsset/Runtime/ResourceManager/Operation/UnloadAllAssetsOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Operation/UnloadAllAssetsOperation.cs index c5033d92..a8b58e23 100644 --- a/Assets/YooAsset/Runtime/ResourceManager/Operation/UnloadAllAssetsOperation.cs +++ b/Assets/YooAsset/Runtime/ResourceManager/Operation/UnloadAllAssetsOperation.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using UnityEngine; namespace YooAsset @@ -72,7 +73,10 @@ namespace YooAsset // 释放所有资源句柄 if (_options.ReleaseAllHandles) { - foreach (var provider in _resManager.ProviderDic.Values) + // 注意:创建快照,因为释放句柄可能触发自动卸载逻辑(AutoUnloadBundleWhenUnused), + // 进而修改 ProviderDic 容器,导致遍历时抛出 InvalidOperationException。 + var snapshot = new List(_resManager.ProviderDic.Values); + foreach (var provider in snapshot) { provider.ReleaseAllHandles(); }