Unity初心者講座:変数を使ってみよう

2021年10月8日

今回はプログラムの基本である、変数の扱いについて勉強していきたいと思います。慣れない用語が多いかもしれませんが、ここでは感じを掴むだけでも大丈夫です。実際にゲームを作るときに思い出せれば大丈夫です。

変数について学ぶ

変数と一言で言っても、いろいろな種類があります。また、使い方なども様々です。まずは変数がどういうものかを覚えましょう

変数とは?

変数とは、いわゆる入れ物です。プログラム内では計算をするために使う値や、その結果をどこかに保持しておく必要があります。人間で言うところの計算結果をメモにかいて、そのメモを他の人に渡すと、次の人が困らないように値を受け渡すことができるという感じのものです。

また、型といってそれぞれの変数には決まった型が存在します。先程の数字を渡す場合はメモ帳で良かったですが、お水を受け渡したい場合は、コップであったり、ポリタンクであったり別のものを使わなければうまく運べません。変数も同様、運ぶのにはそれぞれに適したものを使わなければうまくいかないようになっています。

変数の種類

変数には型が存在すると言いましたが、どのような型があるでしょうか?よく使うものはこちらです

型名型の説明有効範囲
int整数型-2,147,483,648~2,147,483,648
float浮動小数点-3.402823E+38~3.402823E+38
double倍精度浮動小数点-1.79769313486232E+308~1.79769313486232E+308
boolブールtrueまたはfalse
char文字テキストで使われるUnicode記号(U+0000 ~ U+FFFF)
string文字列テキスト

よく使うのはint,float,bool,stringこの4つを使い分けることができればしばらくは困りません。

実際に使ってみる

では、変数を実際に使って見ましょう。前回のプロジェクトのTestScriptを使いましょう。

変数を使うポイントは2つです

1.宣言をする
2.代入をする

まずはこの2つがどのように扱われているかを覚えましょう。

public class TestScript : MonoBehaviour
{
    void Start()
    {
		int iNumber;
		iNumber = 18;
		Debug.Log(iNumber);
    }
}

宣言

変数を使うには、宣言が必要になります。宣言しているのは、5行目です。

今回は「int型の変数をiNumberという名前で使います!」と宣言しています。この宣言をすることで、5行目以降でiNumberというものはint型の変数を使っているということを意味します。

代入

この時点ではiNumberの中にはどんな数字が入っているかわかりません。この数字にどんな数字を入れるかを決めているのが、6行目の代入をしている行です。

数学だと等価を意味するイコール(=)ですが、プログラムの場合は、iNumberに18を代入するという意味になります。


ちなみに7行目のログ表示にintの変数をそのまま入れることも可能です。この状態で実行して、ログに代入した数字が表示されるとOK。

以上が「intの変数に18を代入してログに表示する」というプログラムです。

変数から変数へ代入

先程は変数に直接値を代入しましたが、変数から変数へも値を代入することが出来ます。

    void Start()
    {
		float fValue = 12.3f;
		float fTemp = 0.0f;
		fTemp = fValue;
		Debug.Log(fTemp);
    }

今度はfloat型を使ってみます。3行目と4行目で2つfloat型の変数を宣言していますが、先程と違っていきなり数値を代入しています。これは宣言時と同時に初期化の値を代入しています。他の言語などでは、宣言時に意味不明な値が代入されていることがあったりするので、宣言時に初期化する癖を付けておくと、他のプログラムを勉強するときにも便利ですよ。

先ほどと違うのは5行目の右辺に変数が来ている代入です。
これは、fTemp変数にfValue変数と同じ値を代入しています。

あとは先程と同様にログに表示をしているだけです。

数値系の変数を使って計算

では、実際にいくつか変数を使って計算の練習をしてみたいと思います。

intでの計算

四則演算+αの計算を行います。プログラムを御覧ください

    void Start()
    {
		int iParamA = 1;
		int iParamB = 2;
		int iParamC = 3;
		Debug.Log(iParamA + iParamB); // 足し算
		Debug.Log(iParamA - iParamC); // 引き算
		Debug.Log(iParamB * iParamC); // 掛け算
		Debug.Log(iParamA / iParamC); // 割り算
		Debug.Log(iParamA % iParamC); // 余り
	}

先に結果を確認しましょう

変数を3つ用意して、それぞれ組み合わせが若干違うので注意して見比べてみて下さい。

int(整数型)の場合注意が必要なのは、割り算の結果が小数点を割り切る形になります。小数点の結果が欲しい場合はfloat型を使いましょう。

文字列も足し算?よく使うので文字列の扱いも覚えよう

また、数字系の四則演算は算数っぽさが残っているので感覚的にわかりやすいです。しかし文字列という変数もありますが、どう使うのでしょうか?文字列はよく使うので、簡単な足し算を勉強しましょう

    void Start()
    {
		string strA = "文字列A";
		string strB = "文字列B";
		Debug.Log(strA + strB);
		//Debug.Log(strA - strB); 引き算はエラーがでて使えない
	}

文字列型を2つ用意して、プラスで足し算をすることが出来ます。ただし、引き算はエラーが出てしまいゲームが実行出来ません。文字列の引き算は、文字列を扱うようの関数を使う必要があります。また別の機会で紹介したいと思います。

ちなみに計算結果はこんな感じに仕上がります。・・・・計算結果??

まとめ

今回の変数の演算など、結構軽めに済ませてると感じたかもしれませんが、そのとおりです。

このあたりの勉強は、たしかに重要ではあるんですが、実践でどのように使われているかから見て学ぶ方が遥かに勉強になります。

型の違いなども、基本的にはコンパイルエラーが発生しますので間違えても気にせずその時勉強すればOK!

プログラムの勉強に関しては、こちらも参考にしてみて下さい。

次回は制御文についての勉強をしたいと思います。