diff options
Diffstat (limited to 'Assets/Scripts/FragmentManager.cs')
| -rw-r--r-- | Assets/Scripts/FragmentManager.cs | 10 |
1 files changed, 10 insertions, 0 deletions
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<string> LoadedSceneNames = new(); + // 关键:在每次进入 Play Mode(且不重启域)时,重置静态集合 + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void ResetStaticState() + { + LoadedSceneNames.Clear(); + // 如果有其他静态字段,也在这里一并重置 + } + /// <summary> /// 刷新场景需要列表(基于场景名称) /// </summary> @@ -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) { |
