C#の「変数の型」をマスターしてゲームを思い通りに動かそう
Unityを使ったゲーム開発で最も基本となるのが、C#の「変数」です。
変数とは、ゲームに必要な様々なデータ(キャラクターのHP、移動速度、スコアなど)を一時的に記憶しておく「名前のついた箱」のようなものです。
この箱には、入れるデータによって「型」が決まっています。
この記事を読むことで、C#で最も頻繁に使用する4つの基本データ型(int, float, bool, string)の役割とUnityでの具体的な使い方をマスターできます。
Unity開発を始めたばかりのC#初心者の方でも、基礎をしっかり固め、自信を持ってプログラムを書けるようになりましょう!
1. 変数とは?ゲームを動かす「データをしまう箱」の基本
ゲームはデータの集まりでできています。
例えば、敵を倒したときにスコアが「10」増えるという処理は、「スコア」という変数に「10」というデータを加える操作です。
この変数を定義する際、C#では「どんな種類のデータを入れるのか」を最初に宣言する必要があります。
これが「変数の型」です。
// 型 変数名 = 初期値;
int score = 0; // 整数を入れる箱
4つの変数の型の簡単な説明
| 型 | 扱うデータ | Unityでの主な用途 |
| int | 整数 | HP、スコア、カウント |
| float | 少数点のある数値 | 座標、速度、時間 |
| bool | 真偽値(True,false) | 状態管理(クリア、ゲームオーバー) |
| string | 文字列 | UI表示 |
2. 整数を扱う型: int(インテジャー)
int(Integer) 型は、小数点を含まない整数(プラス、マイナス、ゼロ)を扱うための型です。
Unityのゲーム開発では、以下のような「数」を表現するときに最もよく使われます。
- スコア、ライフポイント(HP)、弾薬数
- 配列のインデックス(何番目の要素か)
- ループの回数
int型は、特別な表記なしに数値を代入できます。
using UnityEngin;
public class ScoreManager : MonoBehaviour
{
//整数型の変数「count」を宣言し、初期値を0にする
public int count=0;
void Strat()
{
//変数の値を更新
count=10;
}
void Update()
{
//値を加算する
count +=1;
//コンソールに出力
Debug.Log("カウント:"+ count);
}
}
3. 小数を扱う型: float(フロート)
float型は、小数点を含む実数(浮動小数点数)を扱うための型です。
Unityでは、ゲームオブジェクトの位置や速度、時間など、細かく正確な数値が必要な場面で必須となります。
- キャラクターの移動速度
- オブジェクトの座標 (Transform.position)
- 経過時間、クールダウン時間
float型を使うときは、数値の最後に必ずfをつけます。
これは、C#がデフォルトで小数を
double型(より精度の高い小数型)として認識するため、意図的にfloat型であることを示す目印です。
using UnityEngine;
public class MovementController : MonoBehaviour
{
//float型の変数「speed」を宣言する。
public float speed; //ここで初期値を設定しても良い
void Strat()
{
//変数の値を更新
speed=5.3f; //必ず「f」をつける!
}
void Update()
{
// 毎フレーム、現在の位置から「speed」分だけ前に進める
// Time.deltaTimeは前回フレームからの経過時間(float)
// Vector3.forwardは正面方向
transform.position += Vector3.forward * speed * Time.deltaTime;
}
}
4. 真偽を扱う型: bool(ブーリアン)
bool(Boolean) 型は、真(True)か偽(False)の2つの値だけを扱う型です。日本語では「真偽値(しんぎち)」とも呼ばれます。
ゲーム内の状態を判断する「YES/NO」の旗として非常に重要です。
- キャラクターがジャンプ中か?
- 敵が生きているか?
- ゲームオーバーになったか?
値はtrueまたはfalseのどちらかしか取りません。
using UnityEngine;
public class JumpCheck : MonoBehaviour
{
//bool型の変数「jump」を宣言し初期値をtureにします
public bool jump = true;
void Update()
{
//もしjumpがtrueになったら実行
if(jump==true)
{
Debug.Log("ジャンプした");
jump=false;// ジャンプしたので、次は飛べない状態にする
}
else //jumpがfalseになったら実行
{
Debug.Log("クールダウン");
}
}
}
5. 文字を扱う型: string(ストリング)
string型は、テキスト(文字列)を扱うための型です。
ユーザーインターフェース(UI)でのメッセージ表示や、データの名前の管理に使われます。
- プレイヤー名、アイテム名
- UIに表示するメッセージや説明文
- ファイルパス、URL
文字列は、必ずダブルクォーテーション(" ")で囲む必要があります。
using UnityEngine;
using TMPro; // UIに文字を表示するのに必要
public class MessageDisplay : MonoBehaviour
{
//UIに表示するための変数を宣言
public TextMeshProUGUI uiText;
//string型の変数「text」を宣言する
string gameOverText;
int hp=10;
void Start()
{
//変数の値を更新
gameOverText = "ゲームオーバー";
// uiTextにgameOverTextをセットしてUIに表示する
if (hp<=0)
{
uiText.text = gameOver;
}
}
}
この記事は、Unity開発におけるC#の基本中の基本である「変数の型」に焦点を当て、int, float, bool, stringの4つを具体的なコード例と共に解説しました。
