aboutsummaryrefslogtreecommitdiff
path: root/Assets/Scripts/FragmentManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/FragmentManager.cs')
-rw-r--r--Assets/Scripts/FragmentManager.cs10
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)
{