From 9dd45f536e3e1715833d5f3cf416f3a81acf557a Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Wed, 27 May 2026 19:24:07 +0200 Subject: [PATCH] Validator: Fixed issue, where scene wouldn't unload, if an exception is thrown --- Editor/ValidatorRunner.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Editor/ValidatorRunner.cs b/Editor/ValidatorRunner.cs index 5314e60..c99415c 100644 --- a/Editor/ValidatorRunner.cs +++ b/Editor/ValidatorRunner.cs @@ -179,12 +179,12 @@ namespace Module.ProjectValidator.Editor for (var i = 0; i < assets.Length; i++) { + var assetPath = AssetDatabase.GetAssetPath(assets[i]); + var scene = SceneManager.GetSceneByPath(assetPath); + var isLoaded = scene.isLoaded; + try { - var assetPath = AssetDatabase.GetAssetPath(assets[i]); - var scene = SceneManager.GetSceneByPath(assetPath); - var isLoaded = scene.isLoaded; - if (!isLoaded) scene = EditorSceneManager.OpenScene(assetPath, OpenSceneMode.Additive); @@ -194,14 +194,16 @@ namespace Module.ProjectValidator.Editor { ValidateGameObject(rootObjects[j], string.Empty, report, true); } - - if (!isLoaded) - EditorSceneManager.CloseScene(scene, true); } catch (Exception e) { Debug.LogException(e); } + finally + { + if (!isLoaded && scene.isLoaded) + EditorSceneManager.CloseScene(scene, true); + } } }