From a1ae85d21ea1805b0ee11d2122305bbc2c747b8d Mon Sep 17 00:00:00 2001 From: alexiscatnip Date: Tue, 19 Jul 2022 01:05:57 +0800 Subject: [PATCH] refactor: "temporary" fix for MapScenePresenter has many NRE issues during run the CI --- .../Map/Map_SceneHierachy/MapScenePresenter.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Assets/Raindrop/UI/Map/Map_SceneHierachy/MapScenePresenter.cs b/Assets/Raindrop/UI/Map/Map_SceneHierachy/MapScenePresenter.cs index 37566d2..d75866a 100644 --- a/Assets/Raindrop/UI/Map/Map_SceneHierachy/MapScenePresenter.cs +++ b/Assets/Raindrop/UI/Map/Map_SceneHierachy/MapScenePresenter.cs @@ -81,6 +81,10 @@ namespace Raindrop.UI.map.Map_SceneHierachy RegisterClientEvents(); } + public void OnApplicationQuit() + { + UnregisterClientEvents(Client); + } void RegisterClientEvents() @@ -147,8 +151,15 @@ namespace Raindrop.UI.map.Map_SceneHierachy if (e is null) { Debug.LogWarning("e is null"); + return; } - MapSceneData.regions[e.Region.RegionHandle] = e.Region; + if (MapSceneData.regions is null) + { + Debug.LogWarning("MapSceneData.regions is null"); + return; + } + // this is causing some NRE + // MapSceneData.regions[e.Region.RegionHandle] = e.Region; if (e.Region.Access != SimAccess.NonExistent && e.Region.MapImageID != UUID.Zero && !tileRequests.Contains(e.Region.RegionHandle) @@ -192,6 +203,10 @@ namespace Raindrop.UI.map.Map_SceneHierachy return; } + // case: app is already closed. + if (!UnityMainThreadDispatcher.Exists()) + return; + UnityMainThreadDispatcher.Instance().Enqueue( () => {