using AibisDream.Framework; using AibisDream.Kit; using UnityEngine; namespace AibisDream.FixSystem { public class FixSystemCenter : Singleton { 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 } }