# Blackboard

Blackboardは複数の変数を管理し、グラフ間の値の受け渡しや一時的な値の保持を行います。

## Blackboardを内蔵する機能

- Logic Controller
- ノードグラフ
- Blackboard Asset

## 使用できる変数の型について

Unityがシリアライズに対応している型が変数に使用できます。
詳細はUnity - Manual: Script serializationを参照してください。

## UIの説明

### (A)ツールバー

変数の追加ボタンと名前の検索フィールドがあります。

### (B)変数の名前

変数の型の種類アイコンと名前です。

### (C)変数の値

変数の値の編集フィールドです。

## 操作方法

### 変数の作成

1. ツールバーの「+」ボタンをクリック
2. 型選択メニューのツールバーにある変数の種類ドロップダウンでSingleかListを選択
   Listにするとリスト(可変長配列)の変数を作成できます。
3. 型選択メニューで型を選択。
4. 変数が作成され名前の入力モードになるため、名前を入力。
5. `Enterキー`で確定。

### 変数の削除

以下のいずれかの方法で削除できます。

- 変数の名前を右クリックし、メニューからDeleteを選択
- 変数を選択し`Deleteキー`

## 変数アクセス

### アクセス方法

- Get
  変数の値をOutputDataPortに出力します。
- Set
  InputFieldから受け取った値を変数に格納します。
- Event
  変数の値が変更された際にイベントを受け付けるEventComponent
  イベントが来た際に変数の値をOutputDataPortに出力し、イベントが来たことをノードに伝えます。

### 操作方法

グラフから変数にアクセスするには、変数をアクセスしたいグラフをLogic Editorで開く必要があります。

アクセスするには以下の方法でノードやノードコンポーネントを追加してください。

#### サイドパネル

1. サイドパネルのBlackboardタブを選択する。
2. Blackboardの種類のタブを選択する。
3. 変数をドラッグ開始
4. グラフビューにドロップ
5. ノード作成ニューからノードの種類を選択。
6. ノードが作成されると、ノードの名前入力モードになるので名前を入力。
7. `Enterキー`で確定。

#### ノード作成メニュー

1. グラフビューで`Spaceキー`
   あるいは右クリックし、メニューからCreate Nodeを選択。
2. ノード作成メニューの検索欄に`Variables`と入力
3. アクセスしたい変数とノードを選択。
4. ノードが作成されると、ノードの名前入力モードになるので名前を入力。
5. `Enterキー`で確定。

#### コンポーネント追加メニュー

1. Stateノードなどのノードコンポーネントリストの「+」ボタンをクリック。
2. ノードコンポーネント追加メニューの検索欄に「Variables」と入力
3. アクセスしたい変数とノードコンポーネントを選択。