# Service

Serviceのスクリプトを作成し、行いたい処理を記述することで独自の更新処理などを追加できます。

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

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

## 呼び出される関数

作成したServiceをコンポジットノードやアクションノードに追加すると、スクリプトの各関数が呼びだされるようになります。

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

### 注意点

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

## 呼び出し順

- ノードに複数のServiceを追加している場合は上から順に呼ばれます。
- OnEnableとOnDisable以外のMonoBehaviourのコールバックメソッドも使用できますが、Start()は初回OnUpdate()の後に呼ばれてしまうため注意してください。

## 変数の宣言

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

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

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

## データフロー

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

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

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