FSM有限状态机这个东西以前是知道的,但是没有仔细去学。最近项目中需要用到FSM,也正好看了主程写的FSM状态机,学习到了很多东西。比起网上看的教程,感觉看源码更直观一点。
简单讲一下我们原有的FSM有限状态机系统的构成和功能:
State 状态基类,定义了基本的Enter,Update,Exit三种状态行为,通常在这三种状态行为的方法里会写一些逻辑。每个State都会有StateID(状态id,可以是枚举等),FSMControl(控制该状态的状态控制器的引用),Check方法(用来进行状态判断,并返回StateID,通过FSMControl驱动)
FSMControl,包含了一下FSMMachine,封装层。
FSMMachine,驱动它的State列表,Update方法调用当前State的Check方法来获得StateID,当currentState的Check方法返回的StateID和当前StateID不同,则切换状态。