こちらはArbor 3.2.4以前のドキュメントです。
最新ドキュメントはArbor Documentationをご覧ください。
Decoratorのスクリプトを作成し、行いたい処理を記述することでオリジナルの条件判定やループ処理を追加できます。
Decoratorスクリプトファイルの作成
- Projectウィンドウから作成したい場所で右クリック。
- 右クリックメニューから、「Create > Arbor > BehaviourTree > Decorator C# Script」を選択。
- ファイル名を入力して決定
呼び出される関数
作成したDecotarotをコンポジットノードやアクションノードに追加すると、スクリプトの各関数が呼びだされるようになります。
- OnAwake
初めてノードがアクティブになった時に呼ばれます。 - OnStart
ノードがアクティブになった時に呼ばれます。 - OnAbort
ノードがDecoratorにより中断する時に呼ばれます。 - OnEnd
ノードが終了するときに呼ばれます。 - HasConditionCheck
ConditionCheckを行うかどうかを判定するために呼ばれます。
ConditionCheckを行わない場合はoverrideしてfalseを返すようにしてください。
デフォルトtrue。 - OnConditionCheck
条件判定を行う時に呼ばれます。
条件に合致する場合はtrueを、合致しなければfalseを返してください。
中断するかどうかは最終的にはAbortFlagsにより決定されます。 - OnRepeatCheck
ノードが正常終了した場合に繰り返すかどうかを判定する際に呼ばれます。
繰り返す場合はtrueを返してください。
デフォルトfalse - OnFinishExecute
実行結果を変更するために呼ばれます。
デフォルトでは受け取った結果をそのまま返します。
呼び出し順
- ノードに複数のDecoratorを追加している場合は上から順に呼ばれます。
- OnEnableとOnDisable以外のMonoBehaviourのコールバックメソッドも使用できますが、Start()はOnConditionCheck()などの後に呼ばれてしまうため注意してください。
変数の宣言
作成したスクリプトにpublicもしくはSerializedField属性をつけたフィールドを宣言することでArbor Editorで編集可能になります。
using UnityEngine; using System.Collections; using System.Collections.Generic; using Arbor; using Arbor.BehaviourTree; [AddComponentMenu("")] public class TestDecorator : Decorator { public string myName; // 略 }
また、StateBehaviourと同様にCalculatorSlotやFlexibleクラスも使用できます。