見出し画像

『Unity C#基礎』第四回 条件分岐 - if文とswitch文

今回は、条件分岐について学びます。ゲームを作成する際、プレイヤーの行動やゲームの状態に応じて、異なる処理を実行する必要があります。たとえば、キャラクターの体力がゼロになったときにゲームオーバーにするなどです。これを実現するために使われるのがif文switch文です。


if文とは?

if文は、特定の条件が成立するかどうかを判断して、それに応じた処理を行う構文です。もし条件が成立すれば(trueなら)、その条件に対応する処理が実行されます。

基本的な構文

if (条件)
{
    // 条件がtrueの場合に実行されるコード
}

例:

int playerHealth = 50;

if (playerHealth > 0)
{
    Debug.Log("プレイヤーはまだ生きている");
}

上記の例では、playerHealth0より大きい場合、「プレイヤーはまだ生きている」というメッセージがコンソールに表示されます。

else文を使った条件分岐

else文を使うことで、ifの条件が成立しない場合に実行する処理を指定できます。

構文

if (条件)
{
    // 条件がtrueの場合に実行されるコード
}
else
{
    // 条件がfalseの場合に実行されるコード
}

int playerHealth = 0;

if (playerHealth > 0)
{
    Debug.Log("プレイヤーはまだ生きている");
}
else
{
    Debug.Log("プレイヤーは死んでしまった");
}

この場合、playerHealth0なので、「プレイヤーは死んでしまった」が表示されます。

else ifを使った複数条件の処理

複数の条件を処理したい場合は、else ifを使います。これにより、複数の条件を順に評価し、最初に成立した条件の処理が実行されます。

構文

if (条件1)
{
    // 条件1trueの場合に実行されるコード
}
else if (条件2)
{
    // 条件2trueの場合に実行されるコード
}
else
{
    // 上記の条件が全てfalseの場合に実行されるコード
}

int playerHealth = 50;

if (playerHealth > 80)
{
    Debug.Log("プレイヤーは元気いっぱい");
}
else if (playerHealth > 30)
{
    Debug.Log("プレイヤーは少し疲れている");
}
else
{
    Debug.Log("プレイヤーは危険な状態だ");
}


switch文による条件分岐

switch文は、特定の値に基づいて複数の条件を処理する際に便利な構文です。if文と違い、特定の値に一致するケース(分岐)ごとに処理を実行します。

構文

switch (変数)
{
    case1:
        // 値1の場合に実行されるコード
        break;
    case2:
        // 値2の場合に実行されるコード
        break;
    default:
        // どれにも一致しない場合に実行されるコード
        break;
}

string playerRank = "A";

switch (playerRank)
{
    case "S":
        Debug.Log("素晴らしいプレイヤー!");
        break;
    case "A":
        Debug.Log("かなり優秀なプレイヤー!");
        break;
    case "B":
        Debug.Log("普通のプレイヤー");
        break;
    default:
        Debug.Log("もっと頑張ろう!");
        break;
}

この場合、playerRankが「A」であるため、「かなり優秀なプレイヤー!」と表示されます。

Unityで条件分岐を使った実装例

Unityでif文やswitch文を使って簡単な処理を実装してみましょう。プレイヤーの体力に応じて、ゲームの状態を変える例を紹介します。

手順

  1. Unityで新しいC#スクリプトを作成し、「PlayerState」と名前を付けます。

  2. 以下のコードをスクリプトに書き込みます。

using UnityEngine;

public class PlayerState : MonoBehaviour
{
    public int playerHealth = 50;

    void Start()
    {
        if (playerHealth > 80)
        {
            Debug.Log("プレイヤーは元気いっぱい");
        }
        else if (playerHealth > 30)
        {
            Debug.Log("プレイヤーは少し疲れている");
        }
        else
        {
            Debug.Log("プレイヤーは危険な状態だ");
        }
    }
}
  1. 作成したスクリプトをゲームオブジェクトにアタッチします。

  2. ゲームを再生すると、コンソールにプレイヤーの状態が表示されます。

まとめ

  • if文は、条件が成立した場合に特定の処理を実行します。

  • else文else if文を使って、複数の条件に対応できます。

  • switch文は、特定の値に基づいて異なる処理を実行します。

次回は、繰り返し処理について学びます。繰り返し処理を使うことで、ゲーム内のオブジェクトや敵キャラクターの動きを効率的に管理できるようになりますので、楽しみにしてください!

この記事が気に入ったらサポートをしてみませんか?