PlayMaker — 核心概念

本文介绍如何在Unity中使用事件驱动的有限状态机(FSM)来控制游戏对象的行为。包括状态、过渡、动作等核心概念及其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有限状态机(Finite State Machines)


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

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

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

    

   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)


   

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


变量(Variables)

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

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


事件(Events)


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


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值