Playmaker插件搭载了8个工具:FSM Browser、State Browser、Templates、Tools、Actions、Globals、Events和FSM Log。熟练的使用这些工具,可以让开发者更全面的掌控当前的游戏项目,方便的查看和管理使用Playmaker创建的状态机。本章将详解介绍这些常用工具。
我们可以使用FSM Browser(状态机浏览器)查看/管理游戏项目中的所有状态机。单击PlayMaker|Editor Windows|FSM Browser命令,可以打开此编辑窗口,如图6-1所示。
图6-1 FSM Browser
提示:本节介绍FSM Browser时,使用的示例截图来源于一个自制的游戏项目。此游戏项目包含5个游戏对象,拥有状态机的游戏对象是Cube和Cylinder,如图6-2所示。Cube上的状态机名为FSMCube,包含状态CubeState1和CubeState2。Cylinder上的状态机名为CylinderFSM,包含状态CylinderState1,如图6-3所示。
图6-2 游戏场景中的游戏对象 图6-3 赋予Cube和Cylinder对象的状态机
注意:此游戏示例不包含任何功能,只是为了清楚解释FSM Browser的使用方法和作用。
FSM Browser中间的视图区域,就是状态机列表,它呈现了下面5个方面的信息:
q 2指向的复选框,决定了是否要禁用游戏项目中的此状态机;
q 3指向的字符串,显示了状态机所属的游戏对象以及状态机名;
提示:如果不希望看到状态机所属的游戏对象,可以单击6指向的按钮,然后取消对Show Full FSM Path的复选,如图6-4所示。
图6-4 Show Full FSM Path 图6-5 playMaker的Inspector Panel中,编辑状态机描述和在线资源网址的位置
q 4指向的字符串,是对被选中状态机的功能描述;
q 5指向的字符串,是一个在线资源的网址;
提示:单击8指向的图标后,浏览器会自动载入5指向的网址。
q 7指向的字符串,是状态机当前所处的状态;
提示:开发者可以直接编辑4和5所指向的位置,效果等同于在playMaker的Inspector Panel中进行编辑,如图6-5所示。
1指向的下拉列表,可以筛选FSM Browser中显示的状态机。筛选的条件有下列4个(下拉列表的4个选项),如图6-6所示。
q All:显示全部的状态机;
q On Selected Object:显示选中游戏对象上的状态机;
q Recently Selected:显示近期选择过的状态机;
q With Errors:显示有错误的状态机;
图6-6 预置的4个筛选条件
使用FSM Browser可以查看/管理游戏项目中的状态机。具体到细节而言,使用此工具可以带来以下优点:
q 快速选中游戏项目中的状态机;
q 游戏运行时,实时查看状态机当前所处状态;
q 快速的切换状态机的可用/禁用状态;
q 直接编辑状态机的描述和链接信息;
使用State Browser可以查看/管理指定状态机中的状态。单击PlayMaker|Editor Windows|State Browser命令,可以打开此编辑器口,如图6-7所示。
图6-7 State Browser
提示:本节介绍State Browser时,使用的示例截图来源于一个自制的游戏项目,此游戏项目与上一节相同。
State Browser中间的列表,就显示了指定状态机中的所有状态。
提示:也就是2所指向的区域。
1指向的下拉列表,用于指定游戏项目中的状态机,如图6-8所示。而State Browser中显示的状态,则是此状态机中的所有状态。
图6-8 1指向的下列列表
提示:此时的游戏项目中,Cube拥有状态机FSMCube,Cylinder拥有状态机CylinderFSM。
使用State Browser可以查看/管理状态机中的状态,具体到细节而言,使用此工具可以带来以下优点:
q 快速预览选定状态机中的所有状态;
q 快速选择状态机中的特定状态;
模板(Template)可以加快我们创建状态机的速度。在很多功能重复的状态机上,模板的作用不可小觑。Templates可以查看/管理状态机模板,单击PlayMaker|Editor Windows|Templates Browser命令,可以打开此编辑窗口。
提示:本节的操作,依然建立在上一节游戏项目的基础之上。
假设FSMCube状态机里,状态CubeState1和CubeState2构成的功能,其它状态机也同样需要,那么就无需在其它状态机里再次构建,因为使用模板是最快捷的方法。请按照下面的步骤操作,学习创建模板的方法:
(1)FSMCube状态机及其状态,如图6-9所示。现在需要将状态CubeState1和CubeState2创建为模板。
图6-9 FSMCube状态机及其状态
(2)我们需要同时选中状态CubeState1和CubeState2,然后右击并选择Save Template命令,再为“模板”资源指定文件名和存储路径以后,模板就创建成功了。
提示:默认情况下,模板都被存储在Project视图的PlayMaker/Templates路径下,如图6-10所示。本示例创建了两个版本template1和template2。
图6-10 模板资源的默认存储路径
在了解为模板分类的方法之前,首先来看Templates的列表视图区域。Template编辑窗口,如图6-11所示。
图6-11 Templates
提示:Templates编辑窗口列出了开发者创建的所有模板。
q 1表示模板的分类;
提示:单击这个表示模板分类的按钮,可以展开所有此分类下的模板。
q 2表示模板;
在选中一个具体的模板以后,编辑3指向的文本框,即可“新建模板分类”或者“指定模板分类”!而4指向的位置,则用于为模板添加描述信息。
假设状态机CylinderFSM要用到我们之前创建的模板。请按照下面的步骤来操作,学习使用模板的方法。
(1)状态机CylinderFSM里现有的状态,如图6-12所示。
图6-12 状态机CylinderFSM,及其状态
(2)在状态机编辑窗口编辑区域的空白处右击,然后选择Paste Template命令,从此菜单项中找到创建的模板,然后单击目标模板即可。例如,本示例创建的模板位于Gengeral分类下,如图6-13所示。
图6-13 Paste Template 图6-14 在状态机CylinderFSM中使用模板template1
(3)完成以上操作以后,模板template1就被添加到状态机CylinderFSM中了,如图6-14所示。
创建和使用模板时,需要注意以下几点:
q 创建模板时,被选中状态所使用的变量和事件,也会一并被“保存”到模板中;
q 使用模板时,模板状态中的变量和事件,也会一并被“添加”到状态机中;
编辑状态机的时候,很多操作都是十分常用的,如添加状态、添加过渡等等。旧版本的Playmaker收集、整理了这些常用操作,最后集成到了Tools中。单击PlayMaker|Editor Windows|Edit Tool Window命令,可以打开此编辑窗口,如图6-15所示。
提示:因为这一工具已经过时,所以本节只会简要介绍这一工具。
图6-15 Tools
Tools中的内容会依据开发者在playMaker编辑器中的选择而发生变化。它会显示出与当前选择相关的按钮。
注意:本节介绍的工具的功能已经被集成到了playMaker的上下文菜单中。
当开发者选中了一个状态机,Tools中的内容如图6-16所示。此时Tools认为开发者打算编辑状态机。
提示:现在这一功能已被集成到playMaker的上下文菜单中,右击playMaker的空白处,如图6-17所示。
图6-16 编辑状态机 图6-17 上下文菜单
当开发者选中了一个状态,Tools中的内容如图6-18所示。此时Tools认为开发者打算编辑状态。
提示:现在这一功能已被集成到playMaker的上下文菜单中,右击状态,如图6-19所示。
图6-18 编辑状态 图6-19 上下文菜单
当开发者选中了一个过渡事件,Tools中的内容如图6-20所示。此时Tools认为开发者打算编辑过渡事件。
提示:现在这一功能已经被集成到playMaker的上下文菜单中,右击过渡事件,如图6-21所示。
图6-20 编辑过渡事件 图6-21 上下文菜单
Playmaker插件预置了大量的动作,我们可以使用Actions查看/添加这些动作。单击PlayMaker|Editor Windows|Action Browser命令,可以打开此编辑窗口,如图6-22所示。
图6-22 Actions(太长,截成两段展示)
本节将以Input动作分类中的Any Key动作为例,说明Actions编辑器窗口的使用方法,如图6-23所示。
图6-23 Actions中Input动作分类中的Any Key动作
q 1指向的是动作分类按钮,单击此按钮可以展开此分类中的所有动作;
q 2指向的是动作;
使用动作前,可以在Actions里预览选中的动作。
提示:要预览选中的动作,需要确保5所指属性Preview被复选。
q 3所指字符串是动作的简要描述;
q 4所指区域是动作的属性;
要了解所选动作的更多帮助信息(包括动作属性的意义),可以单击6所指的按钮,Playmaker会让浏览器自动定位到对应动作的在线帮助文档。例如动作Any Key,在线文档如图6-24所示。
图6-24 动作Any Key的在线文档
要添加Actions中所选的动作到状态,可以使用下列两种方法:
q 双击Actions中所选的动作;
q 单击7所指的按钮Add Action To State;
全局变量存储的信息可以被游戏场景中的所有状态机共享,因此它是十分重要的。使用Globals可以查看/管理所有的全局变量,单击PlayMaker|Editor Windows|Global Variables命令,可以打开此编辑窗口,如图6-25所示。
图6-25 Globals
注意:“当前游戏项目”中定义的全局变量,都会在Globals中列出。不要误以为是“当前游戏场景”。
Globals中间的视图区域,就是全局变量列表。此列表列出了当前游戏项目中所有的全局变量。其中:
q 1指向的列表示全局变量的名称;
q 2指向的列表示全局变量被使用的次数;
提示:为了让全局变量的使用次数更准确,可以手动更新,方法是单击8所指向的按钮。
q 3指向的列表示全局变量的类型;
Globals下侧的部分,可以被用来添加全局变量,其中:
q 6指向的部分用来命名全局变量;
q 7指向的部分用来设置类型;
q 9指向的Add按钮用来添加全局变量;
如果对已定义的全局变量不满意,可以单击5所指向的按钮,删除指定的全局变量。
对于Globals编辑窗口,需要特别注意的是:
q 全局变量(资源)的存储位置是,Project视图PlayMaker/Resources路径下的PlayMakerGlobals文件中,如图6-26所示。
图6-26 全局变量(资源)的存储位置
使用Events可以查看/管理游戏项目中所有的事件。单击PlayMaker|Editor Windows|Event Browser命令,可以打开此编辑窗口,如图6-27所示。
图6-27 Events
注意:“当前游戏项目”中的使用的事件,都会被Events列出。不要误以为是“当前游戏场景”。
Events中间的视图区域,就是事件列表。此列表列出了当前游戏项目使用的所有事件。其中:
q 1指向的列用于标识全局事件。要让一个事件成为全局事件,只需要复选此列的复选框即可;
提示:本地事件只能被当前状态机触发,而全局事件可以被外部状态机触发。
q 2指向的列表示事件的名称;
q 3指向的列表示事件被使用的次数;
事件都被定义在状态机中,但是可以在Events中直接编辑。例如要将其删除,可以单击4指向的按钮。
单击5指向的按钮Add Selected Events To FSM,可以将选中的事件添加到状态机中,然后状态机再决定如何使用此事件。
状态机在游戏运行时,执行的太快。如果希望掌握其执行细节,可以使用FSM Log。FSM Log会详细记录指定状态机的执行细节。单击PlayMaker|Editor Windows|Log Window命令,可以打开此编辑窗口,如图6-28所示。
图6-28 FSM Log
提示:本节使用的FSM Log截图实例,来源于本章第一节的游戏示例。而状态细节记录的是FSMCube状态机的执行,如图6-29所示。
图6-29 本章FSM Log截图示例,记录的状态机,及其执行过程
FSM Log中间的视图区域就是状态机执行细节列表。此列表按照时间顺序,从上到下记录了指定状态机的执行细节。其中:
q 2指向的是一个时间,表示从开始运行游戏到此执行此细节所消耗的时间;
提示:如果读者的FSM Log没有显示时间,可以手动设置。方法是单击5指向的按钮,然后选择Show TimeCode,如图6-30所示。
q 3指向的是一个“符号”,可以让我们阅读FSM Log细节列表的速度更快;
提示:Playmaker预置了3种“符号”,如图6-31所示,分别表示“进入状态”、“警告”和“错误”。
图6-30 手动设置,令FSM Log显示时间 图6-31 预置的3种“符号”
q 2指向的字符串,时间后面的字符串是有固定格式的。这种格式相当于一种约定,可以让字符串更短,表示的含义更多;
提示:Playmaker预置了4种字符串“格式”,如图6-32所示。它们分别表示“状态机开始运行”、“状态机接收到事件”、“从状态退出”和“进入状态”。
图6-32 Playmaker预置的4种字符串“格式”
FSM Log一次只能记录一个状态机的执行细节。我们可以从1指向的下拉列表中选择要查看的状态机。例如,对于本章一直在使用的游戏示例,此下拉列表中的内容,如图6-33所示。
图6-33 从1指向的下列列表中选择要查看的状态机
FSM Log可以持续不断的记录很多、很长的细节。如果有很多记录细节是不需要的,可以单击4指向的按钮Clear,清除FSM Log中记录的所有内容。
本文选自:Playmaker全面实践教程Input篇大学霸资料,转载请注明出处,尊重技术尊重IT人!