行為樹(一)BT的介紹
阿新 • • 發佈:2020-12-19
節點型別
- ControlNode是可以具有1到N個子節點的節點。一旦接收到
tick
,tick
可以傳播到一個或多個子節點。 - DecoratorNodes與
ControlNode
相似,但只能有一個子節點。 - ActionNode是葉子且沒有子節點。使用者應該實現自己的
ActionNode
來執行實際的任務。 - ConditionNode與
ActionNode
一樣,但是總是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
。