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; }