# データフローの使い方

## データスロット

### 接続

- データスロットのフィールドをドラッグ。
- 同じ型の対となるスロットにドロップ。

### 切断

- 接続ラインを右クリック。
- 「切断」を選択

## FlexibleField

FlexibleField関連クラスのフィールドでは、複数の参照方法を選択できますので柔軟に値が設定できます。

### 指定方法の選択

- フィールド横のボタンをクリック。
- タイプを選択。

### 参照タイプ

#### FlexibleType

FlexibleVector3などで選択できるタイプ。

項目 | 内容
--- | ---
Constant | 定数値。 値を設定するフィールドが表示される。
Parameter | パラメータを参照する。 パラメータについては ParameterContainer を参照してください。
DataSlot | データの入力スロット。

#### FlexiblePrimitiveType

FlexibleIntなどの数値型で選択できるタイプ。

項目 | 内容
--- | ---
Constant | 定数値。 値を設定するフィールドが表示される。
Parameter | パラメータを参照する。 パラメータについては ParameterContainer を参照してください。
Random | 指定範囲の中からランダムに取得する。
DataSlot | データの入力スロット。

#### FlexibleSceneObjectType

FlexibleGameObjectなどのシーンオブジェクト型で選択できるタイプ。

項目 | 内容
--- | ---
Constant | 定数値。 値を設定するフィールドが表示される。
Parameter | パラメータを参照する。 パラメータについては ParameterContainer を参照してください。
DataSlot | データの入力スロット。
Hierarchy | グラフの階層から参照する。 Self 自グラフを所有しているGameObjectを参照。 RootGraph グラフの階層化をしている場合に、ルートグラフを所有しているGameObjectを参照。 自グラフがルートの場合は、自グラフのGameObjectを参照する。 ParentGraph グラフの階層化をしている場合に、親グラフのGameObjectを参照。 自グラフがルートの場合はnullを返す。

### ドラッグ＆ドロップによる設定

選択しているタイプに関係なく、ParameterやDataSlot（シーンオブジェクト型の場合はGameObjectやComponentも可）を直接ドラッグ＆ドロップして設定できます。

- 設定したいパラメータなどをドラッグ。
- Dropフィールドへドロップ。

## DataLink属性

DataLink属性を使用したフィールドでは、定数かデータフローからの入力が使用できます。
また、データフローから入力する場合はどのタイミングで値を更新するか指定できます。

### タイミングの指定

- 入力スロットを他の出力スロットへ接続すると、タイミング指定フィールドが表示される。
- タイプを指定。
- (表示されない場合はスクリプトによりタイミングが指定されているため変更できません。)

### タイミングの種類

項目 | 内容
--- | ---
Noting | 更新しない。
Everything | 常に更新する。
Enter | ノードに入った時に更新する。
Execute | ノードが実行される時に更新する。
Manual | スクリプトから任意のタイミングに更新する。

## リルートノード

リルートノードを使用すると、データフローのラインを整理しやすくなります。

### リルートノードを作成して接続

- データスロットのフィールドをドラッグ。
- リルートノードを作成したいグラフ内の位置でドロップ
- メニューの”リルート”を選択

### リルートノード挿入

- 接続ライン上のリルートノードを作成したい位置を右クリック。
- メニューの”リルート”を選択。

### リルートノードの方向変更

- 方向を変更するリルートノードを選択
- 表示される方向アイコンをドラッグして方向を変更。

## 接続ラインについて

### 値表示

プレイ中に接続ラインをマウスオーバーすると、現在値が表示されます。

また、接続ラインの右クリックメニューから「データ値を常に表示」を選択すると、マウスオーバーしなくても表示されるようになります。

全ての接続ラインの値を表示したい場合は、ツールバーの「デバッグ」メニューから「すべてのデータ値を表示」を選択すると切り替わります。

### 右クリックメニュー

接続ライン上を右クリックすると、メニューが表示されます。

項目 | 内容
--- | ---
データ値を常に表示 | プレイ時にデータ値を常に表示します。
リルート | リルートノードを挿入します。
切断 | 切断します。