はじめに
UnityでSpaceキーを押すたびにCubeとSphereを交互に表示・非表示にする方法を説明します。この方法は初心者でも簡単に実行できますので、ぜひ試してみてください!
1. Unityプロジェクトを作成する
まず、Unityを開いて新しい3Dプロジェクトを作成します。
2. オブジェクトを作成する
次に、CubeとSphereを作成します。
- Cubeを作成
ヒエラルキー(Hierarchy)ウィンドウで右クリックし、「3D Object」→「Cube」を選びます。 - Sphereを作成
同じくヒエラルキー(Hierarchy)ウィンドウで右クリックし、「3D Object」→「Sphere」を選びます。 - この記事では、わかりやすいように二つのオブジェクトにMaterialをアタッチして色を変更します。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-19_180645.png)
3. スクリプトを作成する
次に、CubeとSphereを交互に表示・非表示にするためのスクリプトを作成します。
- スクリプトを作成
プロジェクト(Project)ウィンドウで右クリックし、「Create」→「C# Script」を選びます。スクリプトの名前を「GameManager」とします。 - スクリプトを編集
作成した「ToggleObjects」スクリプトをダブルクリックして、コードエディタで開きます。以下のコードを入力します:
コード全体の説明
このスクリプトはGameManager
というクラスを定義していて、MonoBehaviour
を継承しています。Unityでは、MonoBehaviour
を継承することで、スクリプトがUnityのオブジェクトにアタッチされて、特定のイベント(例えばゲームの開始時や毎フレームの更新時)に反応するようになります。
各部分の説明
1. public GameObject cube; public GameObject sphere;
cube
とsphere
という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
を表示します。
- もし表示されていれば、
全体の動き
- ゲームが始まると、
sphere
は非表示になります。 - プレイヤーがスペースキーを押すと、次の処理が行われます:
- もし
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. スクリプトをオブジェクトにアタッチする
- スクリプトを追加
ヒエラルキー(Hierarchy)ウィンドウで空のGameObjectを作成します。右クリックし、「Create Empty」を選び、「GameManager」と名前を変更します。 - スクリプトをアタッチ
プロジェクト(Project)ウィンドウから「GameManager」スクリプトをドラッグして、「GameManager」オブジェクトにドロップします。 - オブジェクトを設定
「GameManager」オブジェクトを選択し、インスペクター(Inspector)ウィンドウで「Cube」と「Sphere」をそれぞれ対応するフィールドにドラッグします。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-19_181137.png)
5. 動作確認
すべての設定が完了したら、シーンを保存し、再生ボタンを押してゲームを実行します。Spaceキーを押すたびに、CubeとSphereが交互に表示・非表示になることを確認してください。
まとめ
これで、Spaceキーを押すたびにCubeとSphereを交互に表示・非表示にする方法は完了です。簡単でしたね!ぜひ、いろいろなオブジェクトで試してみてください。
おすすめのアセット
「Platformer Project」は、初心者でも簡単に使える2Dプラットフォーマーゲームのテンプレートです。このアセットには、キャラクターコントローラー、敵AI、アイテム収集システムなど、ゲーム制作に必要な基本的な要素がすべて含まれています。初心者から上級者まで幅広く対応しており、コードやアセットのカスタマイズも可能です。