https://github.com/shaun-fong/sfsm
A Simple Finite State Machine for unity.
https://github.com/shaun-fong/sfsm
finite-state-machine fsm unity unity3d
Last synced: 2 months ago
JSON representation
A Simple Finite State Machine for unity.
- Host: GitHub
- URL: https://github.com/shaun-fong/sfsm
- Owner: Shaun-Fong
- License: mit
- Created: 2025-02-24T06:18:40.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-02-24T07:29:08.000Z (2 months ago)
- Last Synced: 2025-02-24T08:26:27.337Z (2 months ago)
- Topics: finite-state-machine, fsm, unity, unity3d
- Language: C#
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SFSM
一个非常简单易用的有限状态机

# 安装

or
自行解压至Packages目录
# 使用
示例可通过PackageManager导入

## 状态
使用该状态机首先需要先定义状态
如:
```
[StatePath("SFSMTest/State1")]
public class State1 : SFSMStateBase
{public override void OnEnter(object userData)
{
//进入调用
}public override void OnUpdate(float deltaTime, float fixedDeltaTime)
{
//轮询调用
}public override void OnExit()
{
//离开调用
}
}
```状态可通过 `FSM.ChangeState<类型>();` 进行切换
`StatePath`是用来定义在下拉列表中的路径的,有效的归类现有的状态。
## 初始状态
如果是在可序列化类中声明可直接通过下拉菜单选择初始状态
比如示例中使用了状态机数组

这意味着你可以任意地方使用状态机,甚至状态机嵌套也是可以做到的。
手动设置状态机的初始状态,如`FSM.SetDefaultState<类型>();`
## 初始化
之后便可在任意位置声明状态机,如`public SFSM FSM = new SFSM();`
使用前进行初始化 `FSM.Initialize();`
除此之外还需要进行状态机的轮询调用 `FSM.Update(Time.deltaTime, Time.fixedDeltaTime);`