From e71077f294cf8a281e145cded054cb37f4b8540d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Tue, 13 May 2025 17:53:17 +0800 Subject: [PATCH] fix space shooter quit game error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复太空战机DEMO在退出运行模式时的报错。 --- Assets/YooAsset/Runtime/YooAssets.cs | 23 ++++++++++------------ Assets/YooAsset/Runtime/YooAssetsDriver.cs | 3 ++- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/Assets/YooAsset/Runtime/YooAssets.cs b/Assets/YooAsset/Runtime/YooAssets.cs index b6462666..833617cf 100644 --- a/Assets/YooAsset/Runtime/YooAssets.cs +++ b/Assets/YooAsset/Runtime/YooAssets.cs @@ -75,7 +75,14 @@ namespace YooAsset if (_driver != null) GameObject.Destroy(_driver); - OnApplicationQuit(true); + // 终止并清空所有包裹的异步操作 + ClearAllPackageOperation(); + + // 卸载所有AssetBundle + AssetBundle.UnloadAllAssetBundles(true); + + // 清空资源包裹列表 + _packages.Clear(); } } @@ -91,25 +98,15 @@ namespace YooAsset } /// - /// 应用程序退出处理 + /// 终止并清空所有包裹的异步操作 /// - internal static void OnApplicationQuit(bool unloadAllAssetBundles) + internal static void ClearAllPackageOperation() { - // 说明:在编辑器下确保播放被停止时IO类操作被终止。 foreach (var package in _packages) { OperationSystem.ClearPackageOperation(package.PackageName); } OperationSystem.DestroyAll(); - - // 清空资源包裹列表 - _packages.Clear(); - - // 卸载所有AssetBundle - if (unloadAllAssetBundles) - { - AssetBundle.UnloadAllAssetBundles(true); - } } /// diff --git a/Assets/YooAsset/Runtime/YooAssetsDriver.cs b/Assets/YooAsset/Runtime/YooAssetsDriver.cs index a1ae075e..4adb4e40 100644 --- a/Assets/YooAsset/Runtime/YooAssetsDriver.cs +++ b/Assets/YooAsset/Runtime/YooAssetsDriver.cs @@ -24,7 +24,8 @@ namespace YooAsset #if UNITY_EDITOR void OnApplicationQuit() { - YooAssets.OnApplicationQuit(false); + // 说明:在编辑器下确保播放被停止时IO类操作被终止。 + YooAssets.ClearAllPackageOperation(); } #endif