從左往右執行其子節點,直到一個達成,則 Select 達成並返回上層,不然失敗並返回上層html
從左往右執行其子節點,直到一個失敗,則 Sequence 失敗並返回上層,不然達成並返回上層api
包含一個main task和一個sub tree, main task支持一個 Task 節點,用於執行一個主線行爲,sub tree 支持一個行爲樹,伴隨 main task 執行,返回結果是main task的執行結果dom
Task 節點用於執行具體的動做,引擎內置的 Task 經常使用的有 Wait 、 Move To 、 Is At Location
等等,Task 通常是自行實現的AI具體的行爲邏輯,其中的代碼與普通藍圖代碼同樣
Task官方節點文檔動畫
Event Receive Execute / Event Receive Execute AI
定義該 Task 的主體邏輯代碼,若是沒有特殊需求,則必須以 Finish Execute 節點結束,由於只有 Finish Execute 節點才能向上層返回執行結果,不然該 Task 若是不被打斷將不會執行完成.net
若是同時存在 Event Receive Execute 和 Event Receive Execute AI 兩個事件,優先執行 Event Receive Execute AI 事件code
Event Receive Abort / Event Receive Abort AI
當前任務被打斷時觸發該事件,用來處理突發狀況對當前行爲的影響,若是沒有特殊需求,則必須以 Finish Abort 節點結束,以結束該任務節點的執行server
若是同時存在 Event Receive Abort 和 Event Receive Abort AI 兩個事件,優先執行 Event Receive Abort AI 事件htm
Decorator 類型的節點用做條件判斷(相似於程序中的基本流程控制),附着於 Composites 或 Task 節點上
官方節點文檔blog
Services 附着在 Composite 節點上,只要其分支節點被執行,它們便將按所定義的頻率執行。它們經常使用於檢查和更新黑板。它們以行爲樹系統的形態取代了傳統平行節點
可在行爲樹圖表編輯界面添加自定義的Service,在Service中添加若干Blackboard Key Selector類型的引用變量暴露出來並編譯,而後將Service附着在Composites或者Task節點上,在節點上點擊已附着的Service,在其屬性欄中爲其中的變量指認黑板上的鍵,而後在Service中編寫邏輯代碼對已指認的變量進行更新隊列
Event Receive Search Start / Event Receive Search AI
在任務搜索進入樹的分支時被調用。好比有一個父節點A,其下面有兩個子節點B和C,當任務搜索進入A時調用A的Service中的Search Start,若是A完成或者被打斷,當任務搜索進入B時,將再次調用A的Service中的Search Start
若是同時存在 Event Receive Search Start 和 Event Receive Search Start AI 兩個事件,優先執行 Event Receive Search Start AI 事件
Event Receive Activation / Event Receive Activation AI
在某節點從非活動子樹的一部分變爲活動子樹的一部分時觸發
若是同時存在 Event Receive Activation 和 Event Receive Activation AI 兩個事件,優先執行 Event Receive Activation AI 事件
Event Receive Deactivation / Event Receive Deactivation AI
在某節點從活動子樹的一部分變爲非活動子樹的一部分時觸發,若是附着於Task上,節點離開不會觸發,附着於Composites上能夠觸發。
若是同時存在 Event Receive Deactivation 和 Event Receive Deactivation AI 兩個事件,優先執行 Event Receive Deactivation AI 事件
Event Receive Tick / Event Receive Tick AI
當Service所在的節點是活動子樹的一部分時,Tick事件將以指定的頻率調用,Tick的觸發時間間隔由所在Service的Interval和Random Deviation屬性共同決定,Interval指定基礎時間間隔,Random Deviation指定在基礎時間間隔上的隨機偏差
若是同時存在 Event Receive Tick 和 Event Receive Tick AI 兩個事件,優先執行 Event Receive Tick AI 事件
Composites相似於分支,Decorator相似於分支的判斷,Task相似於Actor的動做,Services控制變量的值。
行爲樹操做黑板,Pawn操做黑板,動畫藍圖操做黑板,抽像出了一層
使用行爲樹可以使行爲邏輯 直觀,複用,可擴展,好維護。
例:BTTask_MoveTo----文檔上查不到屬性,因屬性不是Public
UBTTaskNode ---->Task相關程序