Files
aibis-dream/Assets/Scripts/Framework/LifeCycle/LifeCycleManager.cs
T
2024-11-01 20:57:36 +08:00

52 lines
1.1 KiB
C#

using AibisDream.Kit;
using Yarn.Unity;
namespace AibisDream
{
public class LifeCycleManager : Singleton<LifeCycleManager>
{
private ILifeCycle _lifeCycle;
private void OnEnable()
{
SceneLoader.Instance.LoadSceneEvent += OnInit;
SceneLoader.Instance.UnloadSceneEvent += OnSceneUnload;
}
private void OnDisable()
{
SceneLoader.Instance.LoadSceneEvent -= OnInit;
SceneLoader.Instance.UnloadSceneEvent -= OnSceneUnload;
}
public void Register(ILifeCycle lifeCycle)
{
_lifeCycle = lifeCycle;
}
private void OnInit()
{
_lifeCycle?.OnInit();
}
[YarnCommand("game_start")]
public void OnGameStart()
{
_lifeCycle?.OnGameStart();
}
[YarnCommand("game_end")]
public void OnGameEnd()
{
_lifeCycle?.OnGameEnd();
}
private void OnSceneUnload()
{
_lifeCycle.OnSceneUnload();
_lifeCycle = null;
}
}
}