データフロー
データフローに関するコードの記述方法について説明します。
データの入出力
データの値を入力するには、InputDataPort<T>を使用します。
データの値を出力するには、OutputDataPort<T>を使用します。
スクリプトの書き方
- publicもしくは
UnityEngine.SerializeFieldを適用したInputDataPort<T>型のフィールドでデータを入力したい要素を宣言します。 - publicもしくは
UnityEngine.SerializeFieldを適用したOutputDataPort<T>型のフィールドでデータを出力したい要素を宣言します。 InputDataPort<T>.GetValue()を使用してデータを入力します。OutputDataPort<T>.SetValue(T value)を使用してデータを出力します。
コード例
|
|
この例では、アクションが実行されるたびに、minポートで受け取った値からmaxポートで受け取った値-1までのいずれかの整数値をランダムに出力します。
なお、スクリプトの生成でRandom.Range(int, int)を選択することで同様のスクリプトが作成可能です。
InputField
データの入力については、InputFieldを使用することで、ノード内のフィールドに直接固定値も設定できるようになります。
スクリプトの書き方
- publicもしくは
UnityEngine.SerializeFieldを適用したInputField<T>型のフィールドを宣言します。 InputField<T>.valueを使用してデータを入力します。
コード例
|
|
先ほどの例をInputFieldに置き換えた例です。
minフィールドとmaxフィールドは、固定値で設定する方法と入力ポートから受け取る方法を選択できます。
InputFieldの種類
- InputField<T>
通常の入力用フィールドです。
固定値を設定するか、InputDataPort<T>から受け取るかを選択できます。 - InputGameObject
GameObjectの入力フィールドです。
固定値やInputDataPort<GameObject>以外にも、自グラフを実行しているGameObjectを取得するSelf設定があります。 - InputComponent<T>
Componentの入力フィールドです。
固定値やInputDataPort<T>以外にも、自グラフを実行しているGameObjectのコンポーネントを取得するSelf設定と指定したGameObjectからGetComponentするGameObject設定があります。 - InputQuaternion
Quaternionの入力フィールドです。
固定値やInputDataPort<Quaternion>以外にも、オイラー角指定でクォータニオンを取得するEuler設定があります。 - InputSystemType
System.Typeの入力フィールドです。
型名を内部的にシリアライズすることでSystem.Typeの固定値設定に対応しています。