データフロー
データフローに関するコードの記述方法について説明します。
データの入出力
データの値を入力するには、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
の固定値設定に対応しています。