【Unity】 HTFramework框架(七)StepEditor步驟編輯器(上)

更新日期:2019年9月26日。
Github源碼:[點我獲取源碼]

StepEditor模塊簡介

步驟編輯器,嚴格來說,StepEditor只是框架的一個內置工具,他最開始的用途是用來解決一系列冗長的線性/非線性任務,爲了實現可視化和降低後期升級的複雜度!意識到了這些問題之後,才產生了寫這麼一個工具的想法。

如下這個簡單的例子,一個常見的任務流程:
1.找到NPC張三。
2.與張三交談。
3.張三叫你去殺死幾隻大黃蜂。
(後面可能還會有無限多)…

按照正常人的思維,直接寫一個任務列表順序執行就OK了,所以,StepEditor便是封裝了這個過程,在StepEditor中每個任務都有激活觸發執行三個狀態,他執行一系列任務是這樣的:

1.StepEditor初始化,並激活任務一。
2.任務一獲得觸發條件。
3.任務一進入執行狀態。
4.任務一執行完成激活任務二。
5.循環1-4直到所有任務完成

需要注意的是,每個任務只有激活後,才能獲得觸發條件,只有觸發條件滿足,才能進入執行狀態,執行狀態會自動完成,並激活下一任務。

注意:StepEditor所能做的幾個重點,就是編輯任務的激活狀態操作、編輯任務的觸發條件、編輯任務的執行狀態操作。

使用StepEditor

創建Step Content Asset

Step Content Asset(步驟內容資源)爲StepEditor使用的標準資源,創建方法:
Project界面右鍵 -> Create -> HTFramework -> StepContentAsset

如下,新創建的TestTask001,其中包含的任務步驟數量爲0,點擊Open按鈕(或雙擊資源)便可以打開StepEditor窗口編輯此資源:
在這裏插入圖片描述

打開StepEditor窗口

打開任意一個StepContentAsset資源後,StepEditor初始窗口如下圖:
在這裏插入圖片描述

StepEditor窗口詳解

在這裏插入圖片描述
①.Step Content List(步驟內容列表)
1.這裏顯示所有的任務步驟,可以進行新建、編輯、移動、克隆、刪除等操作。
2.點擊任務步驟右方的–>按鈕,爲選中並編輯此步驟。

②.Step Content Properties(步驟的屬性面板)
1.僅當選中一個步驟時,此面板顯示該步驟的屬性。

③.Camera Control(攝像機控制組件)
1.僅當選中一個步驟時,此面板顯示當前場景的攝像機控制組件(Control模塊)。

④.Operation Panel(操作編輯面板)
1.僅當選中一個步驟時,此面板顯示該步驟的所有操作節點。

⑤.Step Operation Properties(步驟操作的屬性面板)
1.僅當選中一個步驟且選中一個操作節點時,此面板顯示該操作的屬性。

注意:他們之間的邏輯關係如下:
1.①中的每個步驟包含有多個操作
2.②中顯示步驟的屬性。
3.⑤中顯示操作的屬性。
4.當步驟處於激活狀態,且②面板中的屬性Trigger被觸發,則此步驟的所有操作將會根據④面板的連線規則,從Enter節點進入並依次執行節點,等待②面板中的屬性Elapse Time設置的時間(秒)後,自動激活下一步驟

步驟的屬性面板詳解

在這裏插入圖片描述
當在①面板中選擇一個步驟時,②面板則顯示此步驟的屬性:

1.Name:步驟的名稱。

2.GUID:步驟的全局唯一ID。

3.Elapse Time:從步驟的執行狀態開始,到自動激活下一步驟所經過的時間。

4.Instant:勾選後,忽略Elapse Time時間,瞬間激活下一步驟

5.Target:當前步驟的目標。

注意:每個步驟必須有一個目標,該目標會被標識一個全局唯一的GUID,在之後的工作中,你可以隨意進行改變目標的父子層級關係、或是重命名等操作,都不會導致這裏的目標丟失,除非點擊了GUID之後的Clear按鈕。

6.Prompt:步驟的詳細提示。

7.Ancillary:步驟的附屬信息。

8.Operation:步驟的操作節點數量,點擊Find按鈕可以查找由於拖動原因丟失到窗口以外的操作節點。

9.Trigger:步驟的觸發條件。

10.Initial Mode:步驟的初始控制視角。

11.Best View:若已激活攝像機控制組件,設置攝像機組件的最佳視角(自由控制模式)。

12.View Offset:若已激活攝像機控制組件,設置攝像機注視點的偏移(自由控制模式)。

13.Best Pos:角色最佳位置。

14.Helper:步驟的助手,當一個步驟所要執行的操作過於複雜,無法使用預製的操作節點連線來完成,則可以創建一個助手來幫助執行,助手的規則將在後續講解。

15.Parameter:步驟的參數,可以爲此步驟預設多種類型的參數。

操作的屬性面板詳解

在這裏插入圖片描述
當在④面板中選擇一個操作節點時,⑤面板則顯示此操作的屬性:

1.Name:操作的名稱。

2.GUID:操作的全局唯一ID。

3.Elapse Time:從操作的執行狀態開始,到執行下一操作所經過的時間。

4.Instant:勾選後,忽略Elapse Time時間,瞬間執行到下一操作。

5.Target:當前操作的目標。

注意:每個操作必須有一個目標,該目標會被標識一個全局唯一的GUID,在之後的工作中,你可以隨意進行改變目標的父子層級關係、或是重命名等操作,都不會導致這裏的目標丟失,除非點擊了GUID之後的Clear按鈕。

6.Type:操作的類型。

注意:根據操作類型的不同,這裏可以在擴展新的操作類型時定製GUI,如上圖中的操作類型爲Action Args(執行一個帶參數的方法),這個方法可以是目標張三上的任意腳本的任意帶有一個string參數的方法。

7.Clone:克隆此操作節點,將會複製一個一模一樣的節點。

運行時檢視面板

在編輯器中運行時將會出現運行時檢視面板(Runtime Data),主要用以調試或數據監測,目前面板如下:
在這裏插入圖片描述
1.Step Count:當前步驟總數。
2.Current Step:當前激活的步驟索引,點擊Skip按鈕可以模擬跳過當前任務步驟。
3.Current Step Name:當前激活的步驟名稱。
4.Current Step Target:當前步驟目標。
5.Current Step Helper:當前步驟的助手。
6.Disabled Steps:當前未啓用的步驟數量。
7.Custom Order:當前存在的自定義順序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章