有限状态机(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
原文:http://blog.csdn.net/wlj613613/article/details/19162825