aboutsummaryrefslogtreecommitdiff
path: root/Assets/Scripts/FragmentManager.cs
diff options
context:
space:
mode:
authorWeicao-CatilGrass <1992414357@qq.com>2026-05-30 20:02:00 +0800
committerWeicao-CatilGrass <1992414357@qq.com>2026-05-30 20:02:00 +0800
commit7af759cfd8cae024fb4df4972dcfb15b041fa106 (patch)
tree9c43cab80dcef875edbcdd719bf61b866d38874b /Assets/Scripts/FragmentManager.cs
parent7735b716401f630697d5b02910d50dbf8f3416af (diff)
完成了动态场景加载
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)
{