Files
aibis-dream/Assets/Scripts/FixSystemNew/FixSystemCenter.cs
T

63 lines
1.5 KiB
C#

using System;
using System.Collections;
using AibisDream.Framework;
using AibisDream.Kit;
namespace AibisDream.FixSystem
{
public class FixSystemCenter : Singleton<FixSystemCenter>
{
public FixState CurState => StateMachine.CurState;
public FixState defaultState = FixState.Default;
private readonly FixSystemData _data = new();
public override void OnSingletonInit()
{
SystemDic ??= new IOCContainer();
// 初始化状态机
StateMachine = new FixStateMachine(_data);
StartCoroutine(StateMachine.Init(defaultState));
// 注册
StorageSystem.Instance.RegisterData(_data);
}
public override void OnSingletonDestroy()
{
// 注销
StorageSystem.Instance.UnregisterData<FixSystemData>();
CameraKit.Instance.RemoveAllCam();
GameManager.Instance.StartCoroutine(StateMachine.QuitState());
SystemDic.Clear();
}
#region 系统索引
// 容纳System
public static IOCContainer SystemDic = new();
#endregion
#region 状态机相关
public static FixStateMachine StateMachine;
#endregion
}
[Serializable]
[LoadIndex(2)]
public class FixSystemData : IData
{
public FixState curState;
public string args;
public IEnumerator Load()
{
yield return FixSystemCenter.StateMachine.SwitchState(curState, args);
}
}
}