1.作用
?待定
2.所需脚本
fsm在有限的状态下进行状态的切换,所以在代码层面,我们需要一个总览的fsm脚本,记作FSM
对于不同的状态,为了使fsm更好的切换,且减少代码量,所以需要通过基类来调用,记作BaseState
并且为了更好区分每个状态,通过枚举为其命名,记为StateEnum
故在编辑器层面,我们需要创造以下脚本,FSM,BaseState,StateEnum,以及以BaseState为基类的各类状态
3.实现顺序
在有限状态机中很明显,各式状态是基石,我们需要先确定好状态的枚举,然后实现状态的基类,所以我们的编写过程将从StateEnum->BaseState->各式状态->fsm
4.在人物控制中的具体实现
首先是StateEnum,随项目而定
public enum CharacterStateEnum
{
IDLE,
JUMP,
MOVE,
}
其次是BaseState,首先我们需要在构造函数中知悉其运行该状态的fsm,改状态实现的内容,然后是状态的初始化,状态转换过程中需要实现的代码,以及在此状态下的活动
public abstract class BaseState
{
protected CharacterFSM cfsm;
protected Animation animator;
protected CharacterStateEnum currentState;
public BaseState(CharacterFSM cfsm, Animation animation,CharacterStateEnum cs)
{
this.cfsm = cfsm;
this.animation = animation;
this.currentSt

最低0.47元/天 解锁文章
2662

被折叠的 条评论
为什么被折叠?



