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對象的狀態機spa
注意:此遊戲示例不包含任何功能,只是爲了清楚解釋FSM Browser的使用方法和做用。插件
FSM Browser中間的視圖區域,就是狀態機列表,它呈現了下面5個方面的信息:orm
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人!