From 4226a0bf02ecef3cf6a5b27b1c04d88b04bccaf1 Mon Sep 17 00:00:00 2001 From: VuNgocHaiC7 Date: Mon, 23 Feb 2026 17:49:55 +0700 Subject: [PATCH 1/2] fix onDestroy ins addressableManager --- .../Scripts/Addressable/AddressableManager.cs | 2 +- Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs | 1 + Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs | 8 ++++---- Assets/Scripts/CECGameRun.cs | 5 ----- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Addressable/AddressableManager.cs b/Assets/PerfectWorld/Scripts/Addressable/AddressableManager.cs index e506ea9575..ada9d5e697 100644 --- a/Assets/PerfectWorld/Scripts/Addressable/AddressableManager.cs +++ b/Assets/PerfectWorld/Scripts/Addressable/AddressableManager.cs @@ -192,7 +192,7 @@ namespace BrewMonster.Scripts { if (handle.IsValid()) { - Addressables.Release(handle); + Addressables.Release(handle); } } diff --git a/Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs b/Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs index e6b44b7062..5cb1c9e198 100644 --- a/Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs +++ b/Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs @@ -20,6 +20,7 @@ namespace BrewMonster void OnDestroy() { + BMLogger.Log("AutoInitializer: OnDestroy called, disposing auto initializers"); foreach (var autoInitializer in _autoInitializers) { autoInitializer.Dispose(); diff --git a/Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs b/Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs index a2c7b5313a..242fc62397 100644 --- a/Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs +++ b/Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs @@ -42,10 +42,10 @@ namespace BrewMonster.PerfectWorld.Scripts.Vfx } private void OnDestroy() { - if(!string.IsNullOrEmpty(_vfxPath)) - { - AddressableManager.Instance.ReleaseAsset(_vfxPath); - } + //if(!string.IsNullOrEmpty(_vfxPath)) + //{ + // AddressableManager.Instance.ReleaseAsset(_vfxPath); + //} } private void Update() diff --git a/Assets/Scripts/CECGameRun.cs b/Assets/Scripts/CECGameRun.cs index 5c511f6dcb..5a1536e14c 100644 --- a/Assets/Scripts/CECGameRun.cs +++ b/Assets/Scripts/CECGameRun.cs @@ -107,11 +107,6 @@ public partial class CECGameRun private static void Dispose() { instance = null; - AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.PlayerPrefab); - AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.MonsterPrefab); - AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.NpcServerPrefab); - //AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.PetServerPrefab); - //AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.PetMountServerPrefab); } private void LoadPrefabs() From 52450d789008887c7e77c2ec31ba40e08a037309 Mon Sep 17 00:00:00 2001 From: MinhHai Date: Tue, 24 Feb 2026 09:39:12 +0700 Subject: [PATCH 2/2] Fix bug Addressable singleton --- .../PerfectWorld/Scripts/World/LitModelHolder.cs | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/World/LitModelHolder.cs b/Assets/PerfectWorld/Scripts/World/LitModelHolder.cs index 86745138d5..0127ad7edf 100644 --- a/Assets/PerfectWorld/Scripts/World/LitModelHolder.cs +++ b/Assets/PerfectWorld/Scripts/World/LitModelHolder.cs @@ -79,21 +79,6 @@ public class LitModelHolder : MonoSingleton _cts.Cancel(); _cts.Dispose(); } - - if (addressableObjects == null) - { - return; - } - - // go through candidate list and loaded list, unload all objects in those lists. - foreach (var kvp in _candidatesForLoading) - { - kvp.Key.UnloadAsset(); - } - foreach (var obj in _loadedObjects) - { - obj.UnloadAsset(); - } } #endregion