From 7af759cfd8cae024fb4df4972dcfb15b041fa106 Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Sat, 30 May 2026 20:02:00 +0800 Subject: 完成了动态场景加载 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/FragmentManager.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Assets/Scripts/FragmentManager.cs') diff --git a/Assets/Scripts/FragmentManager.cs b/Assets/Scripts/FragmentManager.cs index 3bac110..74e5a58 100644 --- a/Assets/Scripts/FragmentManager.cs +++ b/Assets/Scripts/FragmentManager.cs @@ -6,6 +6,14 @@ public class FragmentManager : MonoBehaviour { private static readonly HashSet LoadedSceneNames = new(); + // 关键:在每次进入 Play Mode(且不重启域)时,重置静态集合 + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void ResetStaticState() + { + LoadedSceneNames.Clear(); + // 如果有其他静态字段,也在这里一并重置 + } + /// /// 刷新场景需要列表(基于场景名称) /// @@ -91,6 +99,7 @@ public class FragmentManager : MonoBehaviour { foreach (var sceneName in sceneNames) { + Debug.Log("Unloading: " + sceneName); var asyncOp = SceneManager.UnloadSceneAsync(sceneName); if (asyncOp != null) { @@ -115,6 +124,7 @@ public class FragmentManager : MonoBehaviour { foreach (var sceneName in sceneNames) { + Debug.Log("Loading: " + sceneName); var asyncOp = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive); if (asyncOp != null) { -- cgit