71 lines
1.7 KiB
C#
71 lines
1.7 KiB
C#
using AibisDream.Framework;
|
|
using AibisDream.Kit;
|
|
using UnityEngine;
|
|
|
|
namespace AibisDream.FixSystem
|
|
{
|
|
public class FixSystemCenter : Singleton<FixSystemCenter>
|
|
{
|
|
public FixState CurState => StateMachine.CurState;
|
|
|
|
public Camera sceneCamera;
|
|
public Canvas deepCanvas;
|
|
|
|
public override void OnSingletonInit()
|
|
{
|
|
SystemDic ??= new IOCContainer();
|
|
|
|
// TODO 这个回头要改
|
|
AudioManager.PlayAmb1Audio("amb_room");
|
|
|
|
// 初始化场景组件
|
|
InitScene();
|
|
|
|
// 初始化状态机
|
|
StateMachine = new FixStateMachine();
|
|
StartCoroutine(StateMachine.SwitchState(FixState.Clinic));
|
|
}
|
|
|
|
public override void OnSingletonDestroy()
|
|
{
|
|
UnloadScene();
|
|
CameraKit.Instance.RemoveAllCam();
|
|
GameLoopManager.Instance.StartCoroutine(StateMachine.QuitState());
|
|
SystemDic.Clear();
|
|
}
|
|
|
|
private void InitScene()
|
|
{
|
|
if (sceneCamera)
|
|
{
|
|
CameraKit.Instance.AddUICamera(sceneCamera);
|
|
}
|
|
|
|
if (deepCanvas)
|
|
{
|
|
deepCanvas.worldCamera = CameraKit.Instance.uiCamera;
|
|
}
|
|
}
|
|
|
|
private void UnloadScene()
|
|
{
|
|
if (sceneCamera)
|
|
{
|
|
CameraKit.Instance.RemoveUICamera(sceneCamera);
|
|
}
|
|
}
|
|
|
|
#region 系统索引
|
|
|
|
// 容纳System
|
|
public static IOCContainer SystemDic = new();
|
|
|
|
#endregion
|
|
|
|
#region 状态机相关
|
|
|
|
public static FixStateMachine StateMachine;
|
|
|
|
#endregion
|
|
}
|
|
} |