有限状态机(Finite State Machines)
一个有限状态机(FSM)将行为组织成一些离散的状态。
开、关、开启、关闭、行走、空闲、攻击、防御...
Playmaker 使用事件驱动的有限状态机来控制Unity:
当有限状态机(FSM)启动时会发送一个开始事件(Start Event)。
这个start事件(event)会激活第一个状态(state),也就是Start State。
2. 状态( State)同一刻仅能有一个状态是激活的。
激活的状态会执行动作(Action) 并接收事件(Event)。
3. 过渡事件( Transition Event)事件触发过渡(transition)转到另一个状态。
事件可以由Unity发出(碰撞、触发器、鼠标输入、动画事件...)
或者由动作(Action)发出(距离检测、定时设置、游戏逻辑...)
4. 过渡( Transition) 激活的状态"退出"并且新的状态"进入"。
图形视图(Graph View)可以很方便地建立和调试这些过渡(transition)。
5.全局过渡(Global Transition)
全局过渡可以在任何时候被触发,无论当前是哪个激活状态。
在上面的例子中,角色在任何时候都可以被撞倒,所以我们使用了一个全局过渡。
全局过渡可以减少需要显式定义的过渡(transition)的数量来简化有限状态机(FSM)。
动作(Actions)
当前激活的状态会执行动作(Actions)。动作有一些参数可以在动作编辑器(Action Editor)来编辑,就好像在Unity监视窗里编辑脚本参数一样。
变量(Variables)
变量(Variables)是一个值的命名容器。动作编辑器(Action Editor)允许你将动作参数(Action parameters)与变量(Variables)挂钩从而代替常量。例如,"numberOfLives" 来代替 3, "health"来代替100。
如果一个值需要随着时间改变,你应该使用一个变量,而不是硬编码的值。
事件(Events)
所有的状态之间的过渡都是由事件(Events)触发的。
译文源自:https://hutonggames.fogbugz.com/default.asp?W133