配列によりひとつの変数に複数のオブジェクトを格納できます。
Array クラスは Javascript でのみ利用可能です。 C# または Javascript での ArrayList, Dictionarie または Hashtable の詳細については ここを参照下さい。 Array クラスで実現できることの基本的なサンプルです:
function Start () { var arr = new Array (); // Add one element arr.Push ("Hello"); // print the first element ("Hello") print(arr[0]); // Resize the array arr.length = 2; // Assign "World" to the second element arr[1] = "World"; // iterate through the array for (var value : String in arr) { print(value); } }
Unity には二種類の配列があり、ビルトインの配列と通常の Javascript 配列があります。 ビルトイン配列(ネイティブ .NET 配列)は非常に高速かつ効率的ですがリサイズできません これらは static に型宣言されていて、インスペクタで編集可能です。次にビルトインの配列を使用する基本的なサンプルを示します:
// Exposes an float array in the inspector, // which you can edit there. var values : float[]; function Start () { // iterate through the array for (var value in values) { print(value); } // Since we can't resize builtin arrays // we have to recreate the array to resize it values = new float[10]; // assign the second element values[1] = 5.0; }
ビルトイン配列はパフォーマンスが重要なコードでは便利です(Unity の Javascript およびビルトイン配列では mesh interface を使用して秒間200万頂点を容易に処理できます。) 一方で通常の Javascript 配列はリサイズやソートおよび配列クラスで期待する他の全ての操作ができます。 Javascript 配列はインスペクタで表示されません。 Javascript 配列とビルトイン配列どうしで簡単に変換が出来ます。
function Start () { var array = new Array (Vector3(0, 0, 0), Vector3(0, 0, 1)); array.Push(Vector3(0, 0, 2)); array.Push(Vector3(0, 0, 3)); // Copy the js array into a builtin array var builtinArray : Vector3[] = array.ToBuiltin(Vector3) as Vector3[]; // Assign the builtin array to a js Array var newarr = new Array (builtinArray); // newarr contains the same elements as array print (newarr); }
Unity のネーミングルールにもとづき配列の関数が大文字であることに注意して下さい。 Javascript ユーザにとって便利なことに、配列クラスで Unity は小文字の関数もまた許容します。 注意: Unity は List のリストや Array の配列といったシリアライズはサポートしません。
length | 配列の要素番号をセットするか戻り値とする配列の length プロパティです。 |
Add | 配列の最終に value を追加します |
Clear | 配列をクリアします。その際、配列の長さをゼロにします。 |
Concat | 2つ以上の配列を結合します。 |
Join | 配列の要素を一つの文字列に連結します。 |
Pop | 配列の最終要素を取り除き、それを戻り値とします。 |
Push | 配列の最終に value を追加します |
RemoveAt | 配列の index 番目の要素を取り除きます。 |
Shift | 配列の最初の要素を取り除き、それを戻り値とします。 |
Sort | 全ての配列要素をソートします。 |
Unshift | Unshift によりひとつ以上の要素を配列の最初に追加したうえ、戻り値は追加後の配列の長さとします。 |