オブジェクトの型
Unity の全てのスクリプトは C# プログラミング言語に基づいています。C# は "強く型付けされた" 言語として知られています。これは、Visual Scripting の全てのデータとオブジェクトが特定の型 (Type) を持っていることを意味します。例えば、変数は integer
型の数値にすることができ、ノードの出力ポートによって提供されるオブジェクトは GameObject (ゲームオブジェクト) にすることができます。
型は、コンピューターが Visual Scripting のコードを実行するにあたって役立つものです。Visual Scripting の動作は、ノードに入力として提供するオブジェクトの型に左右されない場合もありますが、オブジェクトの型が重要な場合もあります。
例えば、Blackboard で新しい変数を追加する場合、変数に値を割り当てる前にその型を指定する必要があります。また Graph エディターで接続を行う場合に、データ入力の型が正しい場合にのみ接続を許可するデータ入力ポートを持っているノードが存在する場合があります。
オブジェクトの型が選択可能な場合は以下のように Type メニューが表示されます。
ファジーファインダーと同様に、Type メニューに検索語を入力して特定のオブジェクトの型を探すことができます。また、Type メニューの最後にある名前空間のリストから必要な型を探すことも可能です。
Type メニュー内で、名前空間には矢印 (>) が表示されています。任意の名前空間を選択すると、その名前空間内の他の名前空間や型が表示されます。
一般的なオブジェクトの型
Visual Scripting および Unity には何百もの型が提供されています。独自のカスタム型の追加も可能です。カスタム型に関する詳細は カスタム型 を参照してください。
以下は、Visual Scripting で一般的に使用される型の一部です。
型 | 説明 |
---|---|
Float | float (単精度浮動小数点数型) は、小数位を持つ、あるいは持たない数値です。 例えば 0.25 や 13.1 などです。 |
Integer | integer (整数型) は、小数位を持たない数値です。 例えば 3 や 200 です。 |
Boolean | boolean (ブーリアン型) は常に true か false のどちらかです。Boolean は Script Graph 内におけるロジックやトグルの作成に役立ちます。例えば、条件が true の時にのみアプリケーションに何かを実行させたい場合などに使用されます。 |
String | string (文字列型) は、一連の文字あるいは一塊のテキストです。 例えば、 string 、string123 、s は全て string です。 |
Char | char は、string に含まれる 1 つ 1 つの英数字です。 例えば、 s と 1 は両方とも char です。 |
Enum | enum (列挙型) は、オプションの有限な列挙です。enum は通常ドロップダウンメニュー内に表示されます。 Unity には多数の enum が提供されています。例えば Force Mode enum は、 Force 、Impulse 、Acceleration 、あるいは Velocity Change のいずれかの値を持つことができます。 |
Vector | vector (ベクトル) は、一式の float 座標を表します。Unity では vector を使用して位置と方向が表されます。 Unity には以下の 3 種類の vector があります。
|
GameObject | GameObject (ゲームオブジェクト) は、Unity のシーンで使用される基本的なエンティティです。全ての GameObject は、名前、シーン内における位置と角度のトランスフォーム、そしてコンポーネントのリストを持っています。 |
List | list (リスト) は、整理された要素のコレクションです。list 内の要素のそれぞれが独自にタイプを持っていますが、通常は同じタイプです。 Visual Scripting は、C# と同様、list 内の項目を 0 から開始する形でインデックスします。つまり、list 内の最初の要素は list の 0 インデックスにあるということです。2 つ目の項目は 1 インデックス、3 つ目は 2 インデックス、という形で続きます。 |
Dictionary | dictionary (ディクショナリ) は要素のコレクションです。各要素が固有のキーと値を含んでいます。対応のキーを使用して、dictionary 内の要素の値にアクセスし、割り当てることができます。 例えば、dictionary を使用して、グループの人々の名前や年齢を整理したりすることが可能です。その人の名前が年齢の値へのキーとなります。 John と 33 はそれぞれが dictionary 内の 1 つの要素になります。 |
Object | Object (オブジェクト) は、Unity の特殊な型です。ノードのデータ入力ポートのタイプが Object に設定されている場合、そのノードが受け取る入力は特定のタイプである必要はありません。 |
サポートされている型変換
Visual Scripting は、ノード間で渡されるデータ型の一部を自動的に変換することができます。例えば、ヒエラルキー内で 1 つ下の階層にあるゲームオブジェクトからトランスフォームを取得し、アニメーターコントローラーをトリガーしてアニメーションを再生するグラフは以下のようになります。
Visual Scripting は、最初のノードから送信された Transform コンポーネントを、同じゲームオブジェクト上の Animator Controller コンポーネントに変換します。
Visual Scripting は、以下の型変換を自動で実行できます。
数値から数値へ (例えば "5 から 5.0"、"5.0 から 5" などの、integer から float への変換)
基本クラスから子クラスへ
子クラスから基本クラスへ
カスタム演算子 (例えば Vector 2 から Vector 3 への変換)
ゲームオブジェクトからコンポーネントへ (例えば、ゲームオブジェクトからその Rigidbody コンポーネントへの変換)
コンポーネントからゲームオブジェクトへ (例えば、Rigidbody コンポーネントからそのゲームオブジェクトへの変換)
同じゲームオブジェクト上におけるコンポーネントからコンポーネントへの変換 (例えば、Rigidbody コンポーネントから Transform コンポーネントへの変換)
enum から array へ
list から enum へ