目次
概要
ゲームを作ろうとすると、敵の攻撃に当たったらプレイヤーの「体力」が減る、敵を倒すと「スコア」が増える、などの仕掛けが必要になります。このように、変化する値を一時的に記憶する仕組みのことを「変数」といいます。
それでは、「体力」を変数を使って表してみます。下図を見てください。変数は、中身を出したり入れたりすることができる箱のようなものです。まず箱の大きさを決める必要があります。「体力」は「0 ~ 100」までの範囲しか取らないのでそれを必要最低限満たすことができる「byte」という型(箱の大きさ)にします。体力は「100」から始まりますが、ダメージを受けると体力が1ずつ減っていきます。そしてゲーム中は、変数「体力」の中の数字を読み取ってその数字が 0 になったかどうか調べる必要があります(0 になるとゲームオーバーにします)。
次に「スコア」の変数を見てみましょう。スコアは「0 ~ 1000」までの範囲を取るものとします。そのときに最低限必要な型は「ushort」です。ushort は、先ほどの byte よりも入れられる数値の数の範囲が広いので、より多くのメモリ(大きな箱)が必要になります。また、どのような型(箱の種類)で変数を作ったとしても、その型の範囲外の数値を入れたり、文字を入れたりすることはできません。
いくつか注意点もありますが、「変数」はとても便利な機能です。ぜひここで使い方を覚えましょう。
手順
STEP1:コンソールアプリを追加する
レッスン2を学習するために、新しくコンソールアプリを追加します。ソリューション(StudyCS)を右クリックして、「追加」⇒「新しいプロジェクト」の順にクリックします。
下記のように、コンソールアプリを選択します。
①:「C#」を選択します
②:「コンソールアプリ」を選択し、「次へ」をクリック
STEP3:プロジェクトの構成
下表を参考にプロジェクトの構成を入力します。入力できたら、「次へ」ボタンを押します。
No | 項目 | 入力内容 |
---|---|---|
① | プロジェクト名 | Lesson2 |
② | 場所 | 変更しない |
STEP4:追加情報
フレームワークが「長期的なサポート」を選択していることを確認して、「作成」をクリックします。
STEP5:プロジェクトの確認
作成した直後は、下図のようになっていると思います。
STEP6:C# プログラム(ファイル)の追加
「Lesson2_1」という C# のプログラムを作成します。手順は下図の通りです。
①:プロジェクト「Lesson2」を右クリックして、「追加」⇒「新しい項目」を選択
②:「Lesson2_1.cs」という名前にして、「追加」をクリック
STEP7:プログラムを記述する
Lesson2_1.cs のプログラムを下記のように変更します。
namespace Lesson2
{
public class Lesson2_1
{
public static void Text1()
{
Console.WriteLine("【テキスト1】レッスン2:① 変数とは?");
}
}
}
Program.cs のファイルの中身を下記に置き換えます。
namespace Lesson2
{
public class Program
{
public static void Main(string[] args)
{
Lesson2_1.Text1();
}
}
}
STEP8:プログラムを実行する
下図の赤枠部分をクリックして、起動するアプリ「Lesson2」を選択します。
選択したら、下図のように「▶」をクリックするか、「F5」キーを押すと、プログラムを実行します。
コンソール(下図のような画面)に、「【テキスト1】レッスン2:① 変数とは?」と表示されれば OK です。
課題
課題① – 1:倒した敵の数を表示する
「EnemyController.cs」ファイルの 34行目「OnCollisionEnter2D」メソッドの「PlayerEnemyCollision」というクラス名を右クリックします。メニューが出てくるので、「定義へ移動」をクリックします。
「PlayerEnemyCollision.cs」というファイルが開くと思います。これは、プレイヤーと敵が接触したときに、どちらが勝つかを決めるための処理をするプログラムです。16行目あたりに以下のコードを追加してください。敵を倒した数をカウントするための変数です。初期値を 0 にして作成します。
public int enemyDeathCount = 0;
敵を倒した時に変数を1ずつ増やしていきます。下記のコードを追加します(下図の赤枠2か所)。
enemyDeathCount = enemyDeathCount + 1;
Debug.Log を使って変数の中の値を表示します(下図の緑枠1か所)。
Debug.Log("倒した敵の数:" + enemyDeathCount);
ここまでできたら、Unity でゲームを実行してみてください。敵を倒すと、倒した敵の数が表示されますか?
次に進む
このページでは、byte と ushort という型について解説し、int を使った課題を解いてもらいました。しかし、(値型の)変数にはもっとたくさんの種類があります。どのような型があるのか、次で説明したいと思います。