UnityUnityの使い方

Unityの使い方⑦「if文」を使って条件に応じた動きを作ろう

Unity

1. はじめに

こんにちは!Unityの使い方シリーズ第7回へようこそ!

ゲーム作りの中で「条件によって動きを変える」仕組みはとても大事です。例えば、プレイヤーがボタンを押したらジャンプする、敵が近づいたら警戒する、アイテムを拾ったら得点が増える――こんな動きが作れると、ゲームがぐっと面白くなりますよね。

この記事では、Unityで「if文」を使って条件に応じた動きを作る方法を詳しく解説します。「if文って何?」「どうやって使うの?」という初心者の方でも分かりやすいように、手順を1つ1つ丁寧に説明していきます。

Unity初心者でもすぐに試せるサンプルコードも用意しているので、読みながらぜひ実際に作業してみてください!ゲーム作りの第一歩を一緒に始めましょう!


2. if文とは?

if文は、プログラムの中で「条件に応じて処理を変える」ための仕組みです。ゲームを作る中では、特定の条件に応じてキャラクターやオブジェクトを動かすために、if文を使うことがとても多いんです。


if文の基本構文

if文の基本的な書き方は以下の通りです。

if (条件) 
{
// 条件が成立したときに実行する処理
}

この構文を使うと、「もし条件が成立したら、この処理を実行する」という指示ができます。


簡単な例

例えば、以下のようなコードを考えてみましょう。

if (score >= 100)
{
Debug.Log("ゲームクリア!");
}

この例では、score(スコア)が100以上になったら「ゲームクリア!」と表示する処理を実行します。条件が満たされない場合は何もしません。


ゲームでの活用例

if文は、ゲームのさまざまな場面で活躍します。例えば:

  • プレイヤーの体力が0以下になったらゲームオーバー
    if (playerHealth <= 0) { Debug.Log("ゲームオーバー"); }
  • 敵がプレイヤーに近づいたら攻撃する
    if (enemyDistance < 5.0f) { Debug.Log("攻撃開始"); }
  • アイテムを拾ったら得点が加算される
    if (itemCollected) { score += 10; }

など、プレイヤーの行動やゲームの進行に応じた多彩な挙動を作れます!

次のセクションでは、Unityでif文を実際に使う準備を進めていきましょう!




3. Unityでif文を使う準備

ここからは、Unityでif文を使うための準備をしていきます。ゲーム作りでの基本的な操作も含めて説明するので、初心者の方でも安心して進められますよ!まず、Unity Hubを使ってプロジェクトを開きます。


1. C#スクリプトを作成する

Unityでif文を使うには、スクリプト(プログラム)を記述する必要があります。

  1. プロジェクトウィンドウを右クリックします。
  2. 「Create」→「C# Script」を選び、新しいスクリプトを作成します。
  3. スクリプトの名前を「IfExample」と入力します。

2. スクリプトをオブジェクトにアタッチする

  1. ヒエラルキーウィンドウを右クリックし、「Create Empty」を選び、名前を「GameController」に変更します。
  2. 作成した空のオブジェクト「GameController」をヒエラルキーウィンドウで選択します。
  3. 作成した「IfExample」スクリプトをプロジェクトウィンドウからドラッグ&ドロップして「GameController」にアタッチします。
  4. インスペクターを確認し、「IfExample」スクリプトがアタッチされていることを確認してください。

これでUnity内でif文を使うための準備が整いました!次は、具体的にif文を使ってどのような動きを作るかを見ていきましょう。簡単な例を一緒に作っていきます!




4. if文を使った簡単な例

ここでは、Unityでif文を使った簡単なプログラムを作ってみます。今回の例では、**「プレイヤーがスペースキーを押したらジャンプする」**という動きをConsole(デバッグログ)で確認できるようにします。


1. スクリプトを編集する

  1. プロジェクトで作成した「IfExample」スクリプトをダブルクリックして開きます。
  2. 以下のコードをコピー&ペーストしてください。
using UnityEngine;

public class IfExample : MonoBehaviour
{
    void Update()
    {
        // スペースキーが押されたら
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("ジャンプ!");
        }
    }
}

コードの解説

  • void Update()
    • 毎フレーム呼び出される関数です。キー入力など、継続的にチェックしたい処理をここに書きます。
  • Input.GetKeyDown(KeyCode.Space)
    • キーボードのスペースキーが押された瞬間を検出します。
    • 条件を満たした場合、Debug.Log("ジャンプ!");が実行されます。

2. スクリプトをアタッチする

  1. Unityのヒエラルキーウィンドウで、「GameController」オブジェクトを選択します。
  2. プロジェクトウィンドウから「IfExample」スクリプトをドラッグ&ドロップして、「GameController」にアタッチします。

3. 動作確認

  1. Unityエディター上で「再生(Play)」ボタンを押します。
  2. キーボードのスペースキーを押してみてください。
  3. Consoleウィンドウに「ジャンプ!」というメッセージが表示されれば成功です!



5. まとめ

この記事では、Unityで「if文」を使って条件に応じた動きを作る方法を学びました。if文はゲームプログラミングの基礎であり、「条件によって動きを変える」仕組みを作るときに欠かせないテクニックです。


Unityでif文を使いこなせるようになると、ゲームに独自のロジックを組み込むことができるようになります。アイディア次第で、プレイヤーの行動に応じた面白い動きをどんどん追加できますよ!今回の内容をもとに、ぜひあなたのゲームでも試してみてくださいね。

Unity初心者でも簡単!アセットを活用してゲーム開発を加速しよう!

Unity Asset Storeには、初心者でもすぐに使える便利なアセットがたくさんあります。
でも「どれを使えばいいの?」「どう活用すればいいの?」と迷っていませんか?

この記事では、初心者向けのおすすめアセットとその活用法を詳しく解説!
ゲーム開発をもっと楽しく、効率的に進めたいなら必見です!



6. よくある質問(Q&A)

Q
if文が動かないのですが、何が問題ですか?
A

条件が正しく設定されていない可能性があります。次の点を確認してください。

  • 条件内の変数や関数が正しく初期化されているか。
  • スペルミスや大文字小文字の間違いがないか。
  • スクリプトが正しいオブジェクトにアタッチされているか。
  • UnityのConsoleウィンドウにエラーメッセージが表示されていれば、その内容を確認してください。

Q
if文の条件が複雑になると、どうすればわかりやすく書けますか?
A

複数の条件を扱う場合、以下の方法を試してみてください。

&&や||を使う:複数の条件を1つのif文で記述できます。

if (health > 0 && isGrounded)
{
    Debug.Log("ジャンプできる!");
}
変数で条件を整理する:複雑な条件は変数で分けて記述すると分かりやすくなります。

bool canJump = (health > 0 && isGrounded);
if (canJump)
{
    Debug.Log("ジャンプできる!");
}
Q
Unityでの入力処理(Input.GetKeyなど)がうまく動作しません。どうしたらいいですか?
A

主に以下の点を確認してください。

  • ゲームウィンドウが選択されているか:Unityエディターの「Game」タブがアクティブになっていることを確認してください。シーンビューが選ばれていると入力を受け付けません。
  • 条件が正しいか:例えば、Input.GetKeyDown(KeyCode.Space)は「キーが押された瞬間」だけ反応します。キーを押し続ける場合はInput.GetKey(KeyCode.Space)を使用してください。