こんにちは、ともくんのゲーム作り部屋にようこそ!
このページでは、
「Unityで配列はどうやって使うの?」
「そもそも配列ってなに?」
というお悩みの方に向けた内容となっています。
Unityでスクリプトを書いていく際に使うC#には、配列という仕組みがあります。
この配列は、複数の変数の箱をまとめて管理しているもので、変数をたくさん扱う場合に非常に便利なものになります。
配列を作ることで、それぞれの変数に番号が付いてデータが管理されていくことになるので、特定の番号のものを取り出したり、一括で全ての配列内のデータを取得したりすることができます。
そこで、このページでは、Unityで使うことができるC#における配列について、どんな特徴や仕様があるのか、また使い方までをまとめていきます。
配列とは?複数の変数をまとめているもの
配列とは、複数の変数をまとめて管理しているものになっています。
そもそも変数というのは、数値や文字列などのデータが入っている箱のことでした。

配列は、この変数の箱を一列に繋げて、複数の変数を管理しているものになります。

また配列は、それぞれの変数の箱にインデックスとして番号を振って管理しています。
この番号を使うことで、
といったことができるようになります。
配列の使い方
ここからは、実際に配列を作ったり取り出したりする使い方を紹介していきます。
配列の作り方
配列を作る際は、
という流れで作っていきます。
なお、これらをまとめて初期化することもできます。
配列の宣言
配列を宣言する場合は、
型名[] 変数名;
と書いてあげることで、配列を作ることができます。
型名は、変数の記事でも書きましたが、変数のデータの種類を決めているもので、
などがあります。
例えば、整数のデータを配列に入れていくのであれば、
int[] num;
と書くことで、int型のnumという変数名の配列を作ることができます。
配列の数(要素数)を指定
配列を使う場合は、その配列にどのくらいの数の箱を入れるかを先に指定する必要があります。
この配列に入れる箱のことを要素といい、配列の要素数を指定する場合は、先ほどの変数名を使って、
変数名 = new 型名[要素数];
とnew演算子を付けて書いてあげることで、その数の要素が配列に作られます。
例えば、先ほど作ったnumという変数名の配列に10個の要素を入れる場合、
num = new int[10];
と書いてあげます。
なお、この要素数の指定は配列の宣言とまとめてあげることもでき、
int[] num = new int[10];
と、書くこともできます。
配列のそれぞれの要素にデータを入れる
配列を作ることができたら、それぞれの要素に対してデータを入れていきます。
データを入れる際は、
変数名[インデックス] = データ;
と書くことで、それぞれの要素にアクセスしてデータを入れていくことができます。
このインデックスは、配列の先頭から何番目の要素かを表しているもので、一番先頭の要素を「0」としてインデックスが振られていきます。
例えば、先ほどのnumの配列に10個のデータを入れる場合、
num[0] = 10;
num[1] = 37;
num[2] = 4;
num[3] = 50;
num[4] = 332;
num[5] = 59;
num[6] = 2;
num[7] = 18;
num[8] = 751;
num[9] = 66;
といった形で書くことができます。
配列をまとめて初期化する
ここまで、配列の宣言から要素数の指定、データの挿入までを分けて書いて配列を作りましたが、これらはすべてまとめて書いて初期化することができます。
型名[] 変数名 = { 0番目の要素, 1番目の要素, 2番目の要素・・・};
と、{}内でそれぞれのデータを「,」で区切って書いていくことで、配列にデータを入れることができます。
また、{}内に書いたデータの数で配列の要素数も決まります。
例えば、先ほど作ったint型の配列であるnum変数は、
int[] num = { 10, 37, 4, 50, 332, 59, 2, 18, 751, 66};
と、1行で書いて配列を作ることができます。
配列の取り出し方
配列を作ることができたら、次はそこから要素にアクセスしてデータを取得していくことになります。
特定の番号の要素を取得
配列の中にある特定の番号の要素を取得する場合は、
変数名[インデックス]
と書いてあげることで、その変数にアクセスすることができます。
例えば、先ほどと同じnum変数の配列を作り、3つ目の要素を取得してコンソールウィンドウに表示する場合、
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
int[] num = { 10, 37, 4, 50, 332, 59, 2, 18, 751, 66 };
Debug.Log(num[2]);
}
}

と、8行目のようにnum[2]と書いてあげることで、データにアクセスすることができます。
for文で一括で要素を取得
配列から複数の要素を取得する場合、先ほどの方法だと一つずつ指定していくことになり、数が多いと大変になってしまいます。
そこで、for文を使って繰り返し処理を行うことで、一括で取得することができます。
例えば、先ほどのnum変数の配列の中にあるデータを全てコンソールウィンドウに表示したい場合、
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
int[] num = { 10, 37, 4, 50, 332, 59, 2, 18, 751, 66 };
for (int i = 0; i < num.Length; i++)
{
Debug.Log(num[i]);
}
}
}

と書いてあげることで、要素の数だけfor文が繰り返されて、それぞれのデータにアクセスして表示させています。
なお、9行目のfor文のループの条件式に「num.Length」と指定していますが、
配列の変数名.Length
と書くことで、その配列の要素数を取得することができるようになっています。
そして、このfor文内の処理を変えていくことで、
などが簡単にできるようになります。
まとめ
このページでは、Unityで使うことができる配列について、どんなことができるのか、また使い方までを紹介していきましたが、いかがでしたでしょうか?
配列は、複数の変数をまとめて管理しているもので、大量の変数を扱う場合には最適な仕組みです。
配列のそれぞれの要素は、インデックスという先頭からの番号が付いて、そのインデックスを使って配列の中のデータにアクセスすることができます。
また、配列を取り出してくる際は、for文を使うことで一括して処理を行うことができるので、非常に便利に使うことができます。
最後までお読みいただきまして、ありがとうございました!
コメント