# BehaviorTree

BehaviorTreeはビヘイビアツリー形式で実行されるノードです。

## プロパティ

プロパティ名 | 型 | 説明
--- | --- | ---
入力ポート | InputBehaviorTreePort | 親のBehaviorTreePortと接続すると実行されます。
Decorators | Decoratorのリスト | ノードの実行判定などを行うDecoratorのリスト
Services | ノードコンポーネントのリスト | ノードがアクティブの間に実行するノードコンポーネントのリスト

## 対応しているノードコンポーネント

### メイン

- ActionComponent
  ノードがアクティブになった際に処理を実行し、すぐに親ノードに結果を返します。
- TaskComponent
  アクティブになった際に実行開始し、TaskComponentが実行完了した際に親ノードに結果を返します。
- EventComponent
  イベントが来た際に親ノードに結果を返します。
- EvaluateComponent
  ノードがアクティブである間、毎フレーム処理が実行されます。
  結果に応じてタスクの実行状態を変更できる設定があります。

### Decorators

- Decorator
  ノードの実行を行うかどうかの判定や実行結果の改変などに使用します。
- EvaluateComponent
  ノードの実行を行うかどうかの判定などに使用します。

### Services

- ActionComponnet
  処理を実行します。
  Methodsフィールドにより、毎フレーム呼び出すようにも設定できます。
- TaskComponent
  処理を実行し、実行中のステータスを出力します。
- EvaluateComponent
  処理を実行し、結果をbool型で出力します。
  Methodsフィールドにより、毎フレーム呼び出すようにも設定できます。
- ServiceComponent
  ノードがアクティブになった際に実行開始します。