ActionBehaviour
ActionBehaviourのスクリプトを作成し、行いたい処理を記述することでオリジナルのアクションを追加できます。
ActionBehaviourスクリプトファイルの作成
- Projectウィンドウから作成したい場所で右クリック。
- 右クリックメニューから、「Create > Arbor > BehaviourTree > ActionBehaviour C# Script」を選択。
- ファイル名を入力して決定
呼び出される関数
作成したActionBehaviourをBehaviourTreeグラフに追加すると、スクリプトの各関数が呼びだされるようになります。
- OnAwake
初めてアクションノードがアクティブになった時に呼ばれます。 - OnStart
アクションノードがアクティブになった時に呼ばれます。 - OnExecute
アクションノードが実行される時に呼ばれます。
実行タイミングについては、BehaviourTreeのUpdateSettingsとExecutionSettingsを参照してください。
Arborリファレンス : BehaviourTree - OnAbort
ノードがDecoratorにより中断する時に呼ばれます。 - OnEnd
アクションノードが終了するときに呼ばれます。 - OnUpdate
BehaviourTreeのUpdate()のタイミングで呼ばれます。
毎フレーム呼ばれるかどうかはBehaviourTreeのUpdate Settingsに依存。 - OnLateUpdate
BehaviourTreeのLateUpdate()のタイミングで呼ばれます。
毎フレーム呼ばれるかどうかはBehaviourTreeのUpdate Settingsに依存。 - OnFixedUpdate
BehaviourTreeのFixedUpdate()のタイミングで呼ばれます。 - OnGraphPause
グラフが再生中に一時停止した時に呼ばれます。 - OnGraphResume
グラフが一時停止から再開したときに呼ばれます。 - OnGraphStop
グラフが再生停止したときに呼ばれます。 - MonoBehaviourのメッセージ関数
詳しくはUnity ScriptReferenceのMonoBehaviourのMessagesを参照してください。
呼び出し順
(上記画像はあくまで参考イメージであり正確ではありません)
- OnEnableとOnDisable以外のMonoBehaviourのコールバックメソッドも使用できますが、Start()はOnExecute()の後に呼ばれてしまうため注意してください。
フィールドの宣言
作成したスクリプトにpublicもしくはSerializedField属性をつけたフィールドを宣言することでArbor Editorで編集可能になります。
|
|
インスペクターからフィールドを編集するのと同様の機能です。
詳しくは以下のUnityマニュアルを参照してください。
実行の終了
FinishExecute(bool result)を呼び出すことで終了させられます。
なお、FinishExecuteはOnExecuteメソッド内でのみ呼び出すことができます。
|
|
データフロー
ActionBehaviourではデータフローによる値の入出力が可能です。
詳しくは、スクリプティング : データフローを参照してください。
async/await
async/awaitによる非同期待機に対応しております。
詳しくはasync/awaitを参照してください。
補足説明
- ファイル名とクラス名が一致している必要があります。
- Editorフォルダなどの特殊フォルダ以下に配置すると認識されなくなります。
- 自動的に付与されるAddComponentMenu("")はInspectorのAdd Componentに表示されないようにするためのものです。
- グラフを介さずにGameObjectへ直接追加した場合の動作はサポートいたしません。
- C#スクリプトの変更を反映するにはコンパイルが必要です。
PreferencesのAuto Refreshをオフにしている場合などは手動でメニューの「Assets > Refresh」を行う必要があります。 - MonoBehaviourのenabledは実行制御のために内部で使用しているため、代替となるbehaviourEnabledを使用してください。