PlayMaker — 核心概念

有限状态机(Finite State Machines)


       一个有限状态机(FSM)将行为组织成一些离散的状态。

开、关、开启、关闭、行走、空闲、攻击、防御...

Playmaker 使用事件驱动的有限状态机来控制Unity:

    PlayMaker — 核心概念_第1张图片

   1. 开始事件( Start Event)

           当有限状态机(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)


   PlayMaker — 核心概念_第2张图片

当前激活的状态会执行动作(Actions)。动作有一些参数可以在动作编辑器(Action Editor)来编辑,就好像在Unity监视窗里编辑脚本参数一样。


变量(Variables)

变量(Variables)是一个值的命名容器。动作编辑器(Action Editor)允许你将动作参数(Action parameters)与变量(Variables)挂钩从而代替常量。例如,"numberOfLives" 来代替 3, "health"来代替100。
    PlayMaker — 核心概念_第3张图片

如果一个值需要随着时间改变,你应该使用一个变量,而不是硬编码的值。


事件(Events)


所有的状态之间的过渡都是由事件(Events)触发的。


译文源自:https://hutonggames.fogbugz.com/default.asp?W133


你可能感兴趣的:(PlayMaker,Unity3D)