
基本形
一番基礎的な宣言の文法は上の図の通り。
尚、その他のUnityに関する記事は【Unity】サイト内Tips記事リンクまとめにまとめてある。
同時に初期化をしたり修飾子を追記していくとややこしく見えるかもしれないが、最初は一番の肝となる部分がわかっていればよい。変数名は自分で自由につけることができる。いくつか制約もあるがエラーが出てしまったときに以下2点をチェックしてみるといいかもしれない。
・数字から始まる名前はNG。
・C#やUnityですでに使用されている単語もNG。
//型 変数名
int hoge;
型
さり気なく登場したこの型という単語だが、ざっくりと言ってしまえば管理するデータのタイプだ。数値を格納したい場合や文字列を格納したい場合には宣言の段階で予めそれぞれに応じた型で変数を用意する必要がある。以下の表にUnityで特によく使う型4つをまとめた。
int | 基本的な数値。小数はNG。 |
float | 基本的な数値。小数もOK。 |
bool | ○か×かの2パターンのみ。if文などの条件にそのまま使える。 |
string | 文字列。全角文字もOK。 |
インスタンス生成
上の例を読むとVector3やGameObjectで似たようなことをやった覚えのある人もいるかも知れない。はじめは同じような手続きとして考えて問題ない。
これらはUnity側で用意されているクラスで、変数と同じように宣言することでインスタンスというものを生成している。
初期化
宣言と同時に最初から中にデータを代入することができる。この場合書き方は以下の通り。
//型 変数名 = 初期化データ。
int hoge = 0;
同様にインスタンス生成時にデフォルトの状態で代入するときにはnewをすればよい。
//クラス インスタンス名 = new コンストラクタ
Vector3 hoge = new Vector3();
privateとpublic
ここから先は最初は意識しなくてもよい。
変数を利用する際、他のスクリプトから数値を書き換えて欲しくないケースも出てくる。こういった場合にアクセスの制限をかけるために追記するのがアクセス修飾子だ。よく使うのは以下2つ。尚、特に記述がない場合自動的にprivateになる。
private | 宣言したクラス・スクリプト外からのアクセスNG。 |
public | どこからでもアクセスOK。 |
//アクセス修飾子 型 変数名 = 初期化データ。
public int hoge = 0;
static
静的変数の目印。ややこしいので最初はむしろ読まないことを推奨。
ざっくり言ってしまうとクラス共用で使える変数。クラスを元にインスタンスは好きなだけ生成することができるが、例えばゲームのスコアなどがインスタンスを生成するたびに初期化されてしまっては一向にスコアが増えない。こういう場合に終始クラスが管理してくれていれば不具合は防げる。書き方は至ってシンプル。
//修飾子 アクセス修飾子 型 変数名 = 初期化データ
static public int hoge = 0;