四個組件:黑板,行為樹,Character,AIController
- 黑板: 黑板是AI的記憶。他保存關鍵值,以供行為樹使用。
- 行為樹:行為樹是AI的處理器。他做出決定,然后執行。
AI移動需要NavMeshBoundVolume
(查看NavMesh的快捷鍵:P)
行為樹需要注意的地方
- 從上倒下,根節點向下執行
- 永遠從左到右執行相同層次的節點
- Composites節點的類型:Selector,Sequence,SimpleParallel
- Selector:Selector 節點從左至右執行其子項,其中一個子項達成后將停止執行其子項。如 Selector 的子項達成,則 Selector 也達成。如 Selector 的所有子項未達成,則 Selector 未達成。
- Sequence : 節點從左至右執行其子項,如其中一個子項未達成,將停止執行執行其子項。如子項未達成,則 Sequence 也未達成。如 Sequence 的所有子項均達成,則 Sequence 也達成。
(感覺Selector和Sequence的區別就在于是 ”或“ 和 ”且“ 的關系) - SimpleParallel:節點可使單個主任務節點在整顆行為樹旁執行。主任務完成后,Finish Mode 中的設置將確定節點是否立即完成、是否終止次要樹,或是否延遲次要樹的完成。
- Decorators,Services,Tasks
- Services: 定時執行一個操作,通常在根節點下的selector中執行,可以定時檢查操作,常用于檢查和更新黑板
Paste_Image.png
Paste_Image.png
這兩個地方的Interval都可以去設置Service執行的時間間隔
- Decorators:條件語句,附著雨一個Composite或者Task節點,并定義樹中的一個分支或單個節點是否可以執行
- Tasks:Task 是真正“執行”操作的節點,如移動 AI,或調整黑板值。