diff --git a/Promete/PrometeApp.cs b/Promete/PrometeApp.cs
index ddb4d46..0e3ad20 100644
--- a/Promete/PrometeApp.cs
+++ b/Promete/PrometeApp.cs
@@ -137,10 +137,7 @@ public void Dispose()
/// 指定したシーンが存在しない。
public void LoadScene() where TScene : Scene
{
- currentScene?.OnDestroy();
-
- currentScene = provider.GetService() ?? throw new ArgumentException($"The scene \"{nameof(TScene)}\" is not registered.");
- currentScene.OnStart();
+ LoadScene(typeof(TScene));
}
///
@@ -153,6 +150,7 @@ public void LoadScene(Type typeScene)
currentScene?.OnDestroy();
currentScene = provider.GetService(typeScene) as Scene ?? throw new ArgumentException($"The scene \"{typeScene}\" is not registered.");
+ SceneWillChange?.Invoke();
currentScene.OnStart();
}
@@ -263,4 +261,6 @@ public PrometeApp Build() where TWindow : IWindow
return new PrometeApp(services, rendererTypes);
}
}
+
+ public event Action? SceneWillChange;
}