スポンサーリンク
スポンサーリンク
UnityUnityメモ

Unityでスペースキーでオブジェクトを交互に切り替える方法

Unity

はじめに

UnityでSpaceキーを押すたびにCubeとSphereを交互に表示・非表示にする方法を説明します。この方法は初心者でも簡単に実行できますので、ぜひ試してみてください!

1. Unityプロジェクトを作成する

まず、Unityを開いて新しい3Dプロジェクトを作成します。

2. オブジェクトを作成する

次に、CubeとSphereを作成します。

  1. Cubeを作成
    ヒエラルキー(Hierarchy)ウィンドウで右クリックし、「3D Object」→「Cube」を選びます。
  2. Sphereを作成
    同じくヒエラルキー(Hierarchy)ウィンドウで右クリックし、「3D Object」→「Sphere」を選びます。
  3. この記事では、わかりやすいように二つのオブジェクトにMaterialをアタッチして色を変更します。

3. スクリプトを作成する

次に、CubeとSphereを交互に表示・非表示にするためのスクリプトを作成します。

  1. スクリプトを作成
    プロジェクト(Project)ウィンドウで右クリックし、「Create」→「C# Script」を選びます。スクリプトの名前を「GameManager」とします。
  2. スクリプトを編集
    作成した「ToggleObjects」スクリプトをダブルクリックして、コードエディタで開きます。以下のコードを入力します:

コード全体の説明

このスクリプトはGameManagerというクラスを定義していて、MonoBehaviourを継承しています。Unityでは、MonoBehaviourを継承することで、スクリプトがUnityのオブジェクトにアタッチされて、特定のイベント(例えばゲームの開始時や毎フレームの更新時)に反応するようになります。

各部分の説明

1. public GameObject cube; public GameObject sphere;

  • cubesphereという2つのゲームオブジェクトの変数を宣言しています。publicとすることで、Unityのエディタ上でこれらのオブジェクトを設定できるようになります。

2. void Start()

  • このStartメソッドは、ゲームが開始されるときに一度だけ呼び出されます。ここではsphere.SetActive(false);としています。これは、ゲームが始まると同時にsphereオブジェクトを非表示にするという意味です。

3. void Update()

  • Updateメソッドは毎フレーム呼び出されます。ゲームが動いている間は、このメソッドの中の処理が常に実行されます。
  • if (Input.GetKeyDown(KeyCode.Space))という条件文は、プレイヤーがスペースキーを押した瞬間を検知します。
  • 内側のif(sphere.activeSelf)は、sphereオブジェクトが表示されているかどうかをチェックします。
    • もし表示されていれば、cubeを表示してsphereを非表示にします。
    • もし表示されていなければ、cubeを非表示にしてsphereを表示します。

全体の動き

  1. ゲームが始まると、sphereは非表示になります。
  2. プレイヤーがスペースキーを押すと、次の処理が行われます:
    • もしsphereが表示されていれば、cubeを表示し、sphereを非表示にします。
    • もしsphereが非表示であれば、cubeを非表示にし、sphereを表示します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class GameManager: MonoBehaviour
{
    public GameObject cube;
    public GameObject sphere;
 
    void Start()
    {
        sphere.SetActive(false);
    }
 
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            if(sphere.activeSelf)
            {
                cube.SetActive(true);
                sphere.SetActive(false);
            }
            else
            {
                cube.SetActive(false);
                sphere.SetActive(true);
            }
        }
    }
}

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

  1. スクリプトを追加
    ヒエラルキー(Hierarchy)ウィンドウで空のGameObjectを作成します。右クリックし、「Create Empty」を選び、「GameManager」と名前を変更します。
  2. スクリプトをアタッチ
    プロジェクト(Project)ウィンドウから「GameManager」スクリプトをドラッグして、「GameManager」オブジェクトにドロップします。
  3. オブジェクトを設定
    「GameManager」オブジェクトを選択し、インスペクター(Inspector)ウィンドウで「Cube」と「Sphere」をそれぞれ対応するフィールドにドラッグします。

5. 動作確認

すべての設定が完了したら、シーンを保存し、再生ボタンを押してゲームを実行します。Spaceキーを押すたびに、CubeとSphereが交互に表示・非表示になることを確認してください。

まとめ

これで、Spaceキーを押すたびにCubeとSphereを交互に表示・非表示にする方法は完了です。簡単でしたね!ぜひ、いろいろなオブジェクトで試してみてください。

おすすめのアセット

「Platformer Project」は、初心者でも簡単に使える2Dプラットフォーマーゲームのテンプレートです。このアセットには、キャラクターコントローラー、敵AI、アイテム収集システムなど、ゲーム制作に必要な基本的な要素がすべて含まれています。初心者から上級者まで幅広く対応しており、コードやアセットのカスタマイズも可能です。

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました