Ver.0.3.0.33
This commit is contained in:
@@ -1,27 +1,45 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.Kit;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public class FixSystemCenter : Singleton<FixSystemCenter>
|
||||
public class FixSystemCenter : Kit.Singleton<FixSystemCenter>
|
||||
{
|
||||
public FixState CurState => StateMachine.CurState;
|
||||
|
||||
public FixState defaultState = FixState.Clinic;
|
||||
|
||||
private readonly FixSystemData _data = new();
|
||||
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
SystemDic ??= new IOCContainer();
|
||||
|
||||
// 初始化状态机
|
||||
StateMachine = new FixStateMachine();
|
||||
StartCoroutine(StateMachine.SwitchState(FixState.Clinic));
|
||||
StateMachine = new FixStateMachine(_data);
|
||||
StartCoroutine(StateMachine.Init(defaultState));
|
||||
// 注册
|
||||
StorageSystem.Instance.RegisterData(_data);
|
||||
}
|
||||
|
||||
public override void OnSingletonDestroy()
|
||||
{
|
||||
// 注销
|
||||
StorageSystem.Instance.UnregisterData<FixSystemData>();
|
||||
CameraKit.Instance.RemoveAllCam();
|
||||
GameLoopManager.Instance.StartCoroutine(StateMachine.QuitState());
|
||||
GameManager.Instance.StartCoroutine(StateMachine.QuitState());
|
||||
SystemDic.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 播放诊所到场景的timeline
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static IEnumerator PlayClinicCut()
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CoolingMachine);
|
||||
yield return TimelineManager.Instance.PlayTimeline("ToBodyModule");
|
||||
}
|
||||
|
||||
#region 系统索引
|
||||
|
||||
@@ -36,4 +54,17 @@ namespace AibisDream.FixSystem
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
[LoadIndex(2)]
|
||||
public class FixSystemData : IData
|
||||
{
|
||||
public FixState curState;
|
||||
public string args;
|
||||
|
||||
public IEnumerator Load()
|
||||
{
|
||||
yield return FixSystemCenter.StateMachine.SwitchState(curState, args);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user