本文开始介绍PM的操作界面。 将PM导入到unity以后,等待一个短暂的编译时间后,可以发现在unity的菜单栏多出了“PlayMaker”的字样: 点击这个菜单,然后选择“PlayMaker Editor” 上图就是PM的编辑界面,大多数时候使用PM制作逻辑,都是在这里完成的。1:工具栏1.1:历史选择,向前,向后,最近历史记录。1.2:当前选中的具有PlayMakerFSM的gameobject。1.3:在当前gameobject上选中的一个FSM。注意:一个对象身上面可以拥有多个FSM。 这个对象上就拥有3个FSM,可以通过下拉列表选择对应的FSM。1.4:锁定,将当前选中的对象锁定,锁定后再选择其他的gameobject,PM编辑窗口中显示的内容将不会被切换。注意:在完成这个编辑之后,最后取消锁定,以免自己忘记,导致后续的编辑出错。1.5:选中拥有当前FSM的这个gameobject。 在较新版本的PM中,针对预设中的FSM选择方式。可以选择预设本身,也可以将这个预设实例化到场景中。 假如所选中的FSM对象是一个实例,点击选择按钮会弹出上图的列表。Select Game Object:在场景里选中这个预设的实例。Revert To Prefab:还原所有针对这个FSM预设的更改。Select Prefab:选中这个实例得预设(在Project里面选中)。1.6:在编辑区中是否启用导航图。2:编辑视图--在此编辑状态以及各种跳转2.1:所选中的对象名称,以及此对象上的FSM名称。2.2:画布,可视化的工作区,主要的状态编辑工作就在此完成。2.3:导航图,是整个FSM的概览图,可以点击导航图上的区域来移动到对应的视角。2.4:导航图开关。2.5:水印,表示FSM的一个图标,可以自定义。 视图操作:可以按下鼠标中间拖动画布,使用鼠标滚轮缩放画布。按下F键可以回到默认视角。 选择状态:鼠标左键点击一个状态,便可选中它;可以框选多个状态选中它们;按下Shift键加选/Alt键减选状态;点击画布中的空白区域可以取消选择所有状态。 移动状态:鼠标拖动所有选择的状态即可移动它们;画布会在你移动状态的时候自动扩展。 添加状态:有下列几种方式增加新的状态 ●在画布上点击鼠标右键增加 ●复制-粘贴已经存在的状态 ●粘贴一个模板(前提是已经建立过该模板) ●从Action Browser(动作浏览器)里直接拖拽一个action到画布里,可以新建为一个状态 ●按下Ctrl点击鼠标左键可以快速的创建一个状态 添加跳转(Transition变换)事件:有下列几种方式可以添加 ●右键点击一个状态,选择“Add Transition” ●邮件点击一个状态,选择“Add Global(全局) Transition” ●按住Ctrl键点击一个状态来 在两个状态之间建立连接:有以下两种方式 ●从一个状态的Transition事件拖拽一根线连接到另外一个状态 ●按住Ctrl键从Transition事件拖拽一个连线到空白处松开,可以自动创建出一个状态并且连接上3:检视器工具栏3.1:FSM检视器3.1.1:FSM的名字,可以自定义。3.1.2:使用模板3.1.3:可以自定义此FSM的描述,非常有用,方便自己在今后查看梳理逻辑,在制作之前可以根据需要写下描述,例如此FSM的工作流程是如何的,它具有什么功能,还与其他什么东西进行交互等等。3.1.4:你可以创建一个网页文档,并在这里链接它。3.1.5:FSM运行时的行为。 ●Max Loop Override:有时候在链接状态的时候,很可能会出现一个死循环(无限循环)。PM在运行的时候回打断这些循环避免Unity崩溃。在默认情况下,一个通常的Update里如果状态超过了1000次循环,PM会认为此程序处在了一个死循环中。调整这个参数的值可以调整检测死循环的上限值。如果设置为0,表示使用默认的极限值。 ●Reset On Disable:通常情况下,当一个FSM被屏蔽,或者被启用的时候,它就会被重置。然而在某些情况下,你需要FSM在被屏蔽以后记住自己的状态数据,取消勾选这个项目。3.1.6 Controls:这里显示的是在FSM里面所暴露出来的变量,并且能直接在此编辑变量。 ●Variables 变量:在Variable Manager(变量管理器)中可以创建变量。 ●Event 事件:在这里暴露出来的事件,看起来像是个按钮的样子。在运行的时候按下这个按钮就可以发送事件。注意:你可以将变量进行分类,以便更好的对其进行管理,如上图所示。3.1.7 Network Sync:显示FSM里面将会通过网络同步的变量,可以再变量管理器中设置。3.1.8 Debug 调试: ●Show State Label in Game View 在Game视图里显示状态标签 状态标签是一个GUI Box,在拥有此FSM的对象上被绘制出来。对于调试非常有用,但是有很多刚接触PM的朋友想把状态标签显示关掉,却找不到地方,去掉勾选本项即可。 注意:状态标签需要有PlayMakerGUI组件存在于场景中,PM会自动生成一个对象名称如上述,请勿将其删除。 ●Enable Breakpoints 启用断点:没错,断点调试,非常有用。 ●Enable Debug Flow 启用调试工作流:这是一个高级调试选项。开启后可以保存FSM变量的历史记录,当暂停游戏的时候可以在FSM Log里面查看他们的变化情况。3.1.9 Password 密码:设置一个密码,当需要修改FSM的时候需要输入密码才可以编辑。请牢记你的密码!3.2 状态检视器3.2.1:状态名。在FSM里面状态名是必须存在的,而且不能存在相同的名称。3.2.2:设置菜单。状态检视器的一些设置,还有工具,请往下看。 ●Action Sequuence 动作序列:当选中时,每一个Action会同时执行直到FINISHED。下面是详解。 动作序列可以控制动作的执行方式,通常情况下,动作的执行方式是从上至下每一帧执行。 使用动作序列的执行顺序为: 等待0.5秒-->播放声音-->等待1秒发送事件 不适用动作序列的执行顺序为: 立即播放声音-->等待1秒后发送事件 (第一个等待同时也在执行了,但是他的时长比下面的等待时长要短,所以并不能察觉) ●Show State Description 显示状态说明:使用状态说明来描述你的状态是如何工作的。 ●Show Action Parameters 显示动作参数:显示/隐藏状态的参数。 ●Dim Unused Parameters :将未使用的参数变灰,可以更好的过滤掉无用的信息,击中在有用的参数上。 ●Set State Color: 设置状态颜色。 ●Select All Actions:选中此状态里的所有动作。 ●Copy Selected Actions/Paste Actions:复制/粘贴选中的动作。 ●Delete All Actions:快速删除状态上的所有动作。 ●Action Browser :打开动作浏览器。 ●Online Help:在线帮助,可以查看论坛以及文档之类。3.2.3 Action:动作,每一个状态可以包含有一个或者多个action,根据自己的需要来确定加入什么动作,每一个动作就是一个行为。3.2.4 Debug:调试。显示状态里面所有使用到的变量值,在运行的时候调试非常有用。3.2.5 Hide Unused:隐藏未使用的对象,可以在PM的UI里面隐藏一切未使用的参数。3.2.6 Action Browser:打开动作浏览器。关于状态检视器的一些小技巧: 拖拽 ●可以通过拖拽动作的标题移动它们进行排序 ●可以从动作浏览器里面直接把动作拖拽到状态检视器 ●可以直接把unity对象的组件拖拽到状态监视器中进行Get/Set Property操作,非常好用,屡试不爽 运行周期 ●所有的动作从上至下逐帧执行 ●执行完成的动作会被跳过 ●当状态中所有的动作都执行完成以后会发送FINISHED事件 ●当游戏运行的时候,被激活的动作会绿色高亮;执行完毕的动作变灰 ●每一个动作有自己的默认名字,但是也可以重命名,但是需要有一个良好的命名规则能表述清楚,以免产生混乱3.3 Events Manager 事件管理器3.3.1:事件以及事件名。3.3.2:是否转换为全局事件,勾选以后转换为全局事件,全局事件可以在FSM之间发送。3.3.3:事件管理器设置菜单,请往下看 ●Remove Unused Events:移除当前FSM里面所有未使用的事件。 ●Event Browser:打开事件浏览器。 ●Online Help:在线帮助。3.3.4:事件计数器,事件在此FSM里面被使用的次数。3.3.5:从当前FSM里面将这个事件移除。3.3.6:添加新事件。输入想要添加的自定义事件名称,完成后点击Add。3.3.7:打开事件浏览器。事件管理器的一些使用技巧: 编辑事件:选中事件,变为高亮显示 ●Event Name:在此即可编辑它的名称,输入完成后回车,PM会自动将所有使用过这个事件的地方全部替换。 ●Inspector:在Unity的Inspector中将事件以按钮的形式暴露出来,方便调试。 双击画布中的时间可以在事件管理器中快速选中它: 将事件暴露在Unity Inspector中快速调试:3.4 Variable Manager:变量管理器。在此添加删除以及编辑FSM里所需要使用的变量。3.4.1:快速查找变量。3.4.2:变量名。3.4.3:变量所使用的次数。3.4.4:变量类型,可以实时更改,点开按钮会弹出下拉菜单,选择所需要的类型即可。当前PM所能使用的变量类型如下所示3.4.5:变量管理器设置菜单,请往下看。 ●Debug Variable Values:显示变量的值,在运行时调试非常有用。 ●Delete Unused Variables:删除FSM里未使用的变量。 ●Global Variables:打开全局变量窗口。后文会详细说明。 ●Copy Variables:复制此FSM种的所有变量。 ●Paste Variables:将之前复制的变量粘贴到一个FSM。 ●Paste Variable Values:将变量的值粘贴到一个FSM。3.4.6:删除变量。3.4.7:变量编辑器。添加一个变量或者编辑变量。 如何添加变量: ●输入变量名称 ●选择变量类型 ●点击Add完成 ●可以将Unity Inspector中的组件或者对象直接拖入变量编辑器来创建一个变量,如下所示 如何编辑变量: ●在管理器中选中变量 ●使用底部的工具栏进行编辑 ●Edit Variable:选中变量的名字。 ●Value:变量的初始值。 ●Toolyip:可以在此自定义变量的提示。 ●Category:在此自定义分类并将所有变量进行分类管理,在Inspector中暴露出的变量也会根据这个分类进行排列,非常有帮助。 ●Inspector:是否将变量暴露在Unity Inspector上。 ●Network Sync:是否进行网络同步。注意:Enum(枚举),Object(对象),以及Array(数组)类型需要你去设置它们的特定类型才能使用,如下图举例所示 以Object为例 注意,Network Sync已经变灰,因为Unity Object无法进行网络同步。 ●在Object Type中寻找到对应的类型。虽然比较麻烦,但是所有的类型都可以被查找到。 ●Object Type的选择菜单是根据命名空间进行排列的。许多常用的组件在“UnityEngine”项下。大多数第三方插件会使用它们自己命名空间,可以再它们的命名空间查找到。 ●在选择菜单中按下字母可以快速导航到对应名称的命名空间。 按照分类进行排列(1.8新版本功能)4 Debug Toolbar 调试工具4.1:错误计数器。记录工程里的错误数量。4.2 Debug Menu:打开调试菜单。4.3:运行控制。与Unity本身的运行控制很相似。 当游戏运行的时候,如下图所示 有下列四种运行状态: 运行中 暂停中 断点 错误 点击断点或者错误的图标,便会跳转到对应的状态。 调试工作流 如果Debug Flow被启用(可以在Preferences里面设置),在暂停的时候会多出两个按钮: ●Pre:倒回上一个状态。 ●Next:运行至下一个状态。 注意:Debug Flow的时间是通过编辑器同步的,所以你可以选择其他的FSM,查看在那个时候他们的FSM log日志。5 Preferences 首选项 现在饿PM里面内置有中文语言,对于首选项其实没有太多可以说的,将语言切换为中文可以看看首选项里面的内容,都是一些设置,这里就不详细介绍了。 用户操作界面的上篇就此结束。
好详细的教程,对我们新手很有帮助。
@chen:多谢支持:D
真的很好!
谢谢教程~