52 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
|