From c40a796170232c7dc8b5f234e2916590108f05d2 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 10:11:06 +0800 Subject: [PATCH] fix #542 --- Assets/YooAsset/Runtime/YooAssets.cs | 27 +++++++++++++++++++++- Assets/YooAsset/Runtime/YooAssetsDriver.cs | 2 +- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Assets/YooAsset/Runtime/YooAssets.cs b/Assets/YooAsset/Runtime/YooAssets.cs index 5dc8a2a6..b6462666 100644 --- a/Assets/YooAsset/Runtime/YooAssets.cs +++ b/Assets/YooAsset/Runtime/YooAssets.cs @@ -63,6 +63,22 @@ namespace YooAsset } } + /// + /// 销毁资源系统 + /// + public static void Destroy() + { + if (_isInitialize) + { + _isInitialize = false; + + if (_driver != null) + GameObject.Destroy(_driver); + + OnApplicationQuit(true); + } + } + /// /// 更新资源系统 /// @@ -77,7 +93,7 @@ namespace YooAsset /// /// 应用程序退出处理 /// - internal static void OnApplicationQuit() + internal static void OnApplicationQuit(bool unloadAllAssetBundles) { // 说明:在编辑器下确保播放被停止时IO类操作被终止。 foreach (var package in _packages) @@ -85,6 +101,15 @@ namespace YooAsset 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 d576bfcb..a1ae075e 100644 --- a/Assets/YooAsset/Runtime/YooAssetsDriver.cs +++ b/Assets/YooAsset/Runtime/YooAssetsDriver.cs @@ -24,7 +24,7 @@ namespace YooAsset #if UNITY_EDITOR void OnApplicationQuit() { - YooAssets.OnApplicationQuit(); + YooAssets.OnApplicationQuit(false); } #endif