# ActionBehaviour

ActionBehaviourのスクリプトを作成し、行いたい処理を記述することでオリジナルのアクションを追加できます。

## ActionBehaviourスクリプトファイルの作成

- Projectウィンドウから作成したい場所で右クリック。
- 右クリックメニューから、「Create > Arbor > BehaviourTree > ActionBehaviour C# Script」を選択。
- ファイル名を入力して決定

## 呼び出される関数

作成したActionBehaviourをBehaviourTreeグラフに追加すると、スクリプトの各関数が呼びだされるようになります。

- OnAwake
  初めてアクションノードがアクティブになった時に呼ばれます。
- OnStart
  アクションノードがアクティブになった時に呼ばれます。
- OnExecute
  アクションノードが実行される時に呼ばれます。
  実行タイミングについては、BehaviourTreeのUpdateSettingsとExecutionSettingsを参照してください。
  Arborリファレンス : BehaviourTree
- OnAbort
  ノードがDecoratorにより中断する時に呼ばれます。
- OnEnd
  アクションノードが終了するときに呼ばれます。

### 注意点

- MonoBehaviourのenabledは実行制御のために内部で使用しているため、代替となるbehaviourEnabledを使用してください。

## 呼び出し順

- OnEnableとOnDisable以外のMonoBehaviourのコールバックメソッドも使用できますが、Start()はOnExecute()の後に呼ばれてしまうため注意してください。

## 変数の宣言

作成したスクリプトにpublicもしくはSerializedField属性をつけたフィールドを宣言することでArbor Editorで編集可能になります。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    using Arbor;
    using Arbor.BehaviourTree;

    [AddComponentMenu("")]
    public class TestActionBehaviour : ActionBehaviour {
    	public string myName;
    	// 略
    }

## 実行の終了

OnExecuteメソッド内でFinishExecute(bool result)を呼び出すことで終了させられます。

    1
    2
    3
    4
    if (Input.GetKey(KeyCode.Space) )
    {
    	FinishExecute(true);
    }

## データフロー

ActionBehaviourではデータフローによる値の入出力が可能です。

詳しくは、「スクリプティング : データフロー」を参照してください。

スクリプティング : データフロー