1. 程式人生 > 實用技巧 >行為樹(一)BT的介紹

行為樹(一)BT的介紹

節點型別

  • ControlNode是可以具有1到N個子節點的節點。一旦接收到ticktick可以傳播到一個或多個子節點。
  • DecoratorNodesControlNode相似,但只能有一個子節點。
  • ActionNode是葉子且沒有子節點。使用者應該實現自己的ActionNode來執行實際的任務。
  • ConditionNodeActionNode一樣,但是總是atomic【原子】synchronous【同步】,即它們不得返回RUNNING。它們不應更改系統的狀態。

第一個ControlNode:Sequence[序列]

最基本且最常用的ControlNode:SequenceNode

ControlNode的子節點始終是有序的;執行順序是從左到右。

簡而言之:

  • 如果子節點返回SUCCESS,則tick下一個
  • 如果一個子節點返回FAILURE,則子節點不再去tick,並且該序列返回FAILURE
  • 如果所有子節點返回SUCCESS,則序列也返回SUCCESS

Decorators[裝飾器]

根據DecoratorNode的型別可以取決該節點的目的:

  • 轉換從子節點接收到的結果
  • 停止執行子節點
  • 根據Decorators的型別去重複的tick子節點

第二個ControlNode:Fallback[後備]

FallbackNodes (也稱為“選擇器Selectors”)是可以表達備用策略的節點,顧名思義,如果子節點返回FAILURE

,下一步改怎麼做。

按照順序tick子節點,並:

  • 如果子節點返回FAILURE,則tick下一個。
  • 如果子節點返回SUCCESS,則不再tick任何子節點並且Fallback返回SUCCESS
  • 如果所有子節點返回FAILURE,則Fallback也返回FAILURE

原文