在项目开始初始化 FSM
FsmManager.Instance.StartFsm();
步骤:
- 引入命名空间 ZLFSM
- 实现接口 IFsmState
- 在 FsmConsts 定义一个消息名
代码示例:
using UnityEngine;
using ZLFSM;
public class FSMTest1 : IFsmState
{
public int FsmStateName
{
get
{
return FsmConsts.FSM_TEST_1;
}
}
public void OnFinishState()
{
}
public void OnInitState(IFsmStateParam _param)
{
}
}
定义状态名称:
namespace ZLFSM
{
public class FsmConsts
{
public const int FSM_DEFAULT = -1;
public const int FSM_TEST_1 = 1001;
}
}
步骤:
- 在 FsmManager.cs - InitFsm() 方法中 new 一个状态示例
- 把状态示例注册到状态列表
注册状态示例:
public void InitFsm()
{
FSMTest1 fSMTest1 = new FSMTest1();
RegistState(fSMTest1);
}
FsmManager.Instance.ChangeState(FsmConsts.FSM_TEST_1);
- 新建一个参数类,继承 IFsmStateParam 接口
public class TestParam : IFsmStateParam
{
public string testStr;
}
- 在需要跳转的地方 new 一个参数实例,然后跳转状态
TestParam param = new TestParam
{
testStr = "11111"
};
FsmManager.Instance.ChangeState(FsmConsts.FSM_TEST_1, param);