【Unity】Behavior Designerで作ったBehavior Treeを使いまわせる機能「External Behavior Tree」

Behavior Designerである処理をいろんなBehavior Treeで使いまわしたいときにはExternal Behavior Treeを使います。

Unity2018.3.9

External Behavior Treeを作成

まず、下記のようなBehavior Treeを普通に作ります。

f:id:halya_11:20190404010500p:plain

ただログを出力するだけのBehavior Treeです。
これをExternal Behavior Treeにするには、右クリック > Save As External Behavior Tree を選択します。
するとBehavior Treeをアセットとして保存することができます。

f:id:halya_11:20190404010641p:plain

External Behavior Treeを呼び出す

External Behavior Treeが作れたので、これを他のBehavior Treeから呼び出してみます。
External Behavior Treeを呼び出すにはAction TaskのBehavior Tree Referenceを使います。

f:id:halya_11:20190404010818p:plain

これのInspectorから先ほどのExternal Behavior Treeをセットします。

f:id:halya_11:20190404010922p:plain

再生すると正常にExternal Behavior TreeのログTaskが実行されました。

f:id:halya_11:20190404011008p:plain

変数

External Behavior Treeに遷移する際、同じ名前の変数があったら値が引き継がれます。
試しにexternal_testというfloat型のLocal Variableを定義して値をセットしてからExternal Behavior Treeに遷移します。

f:id:halya_11:20190404011443p:plain

External Behavior Tree側でもexternal_testというfloat型のLocal Variableを用意しておきます。
そしてこれの値をログ出力します。

f:id:halya_11:20190404011546p:plain

この状態で再生すると、親のBehavior Treeでセットした値が正常に引き継がれていることが確認できました。

f:id:halya_11:20190404011626p:plain

参考

opsive.com

関連

light11.hatenadiary.com

light11.hatenadiary.com