はじめに
Unityでゲーム開発を行っていると、プレイヤーがマウスでオブジェクトをクリックした際に、そのオブジェクトをシーンから削除する機能を実装したい場面がしばしばあります。このプロセスは初心者にとっては少し難しく感じるかもしれませんが、基本的なステップを踏むことで誰でも簡単に実装できるようになります。
今回は、Unityのレイキャストを利用してマウスでクリックされたオブジェクトを検出し、シーンから削除する方法を、初心者の方にもわかりやすく解説します。
ステップ1: Unityプロジェクトの準備
まずはUnityを開き、新しいプロジェクトを作成しましょう。プロジェクト名は何でも良いのですが、今回は「MouseClickObjectRemoval」としておきます。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-27_184016.png)
Unityエディタが開いたら、シーンに削除したいオブジェクトを追加します。例として、3Dオブジェクトのキューブを使用することにします。Hierarchyビューで右クリックし、「3D Object > Cube」を選択してキューブをシーンに追加しましょう。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-13_172045.png)
ステップ2: レイキャストのコードを書く
オブジェクトの削除には、マウスクリックを検出し、クリックされた位置からレイキャストを発射して、オブジェクトを検出するコードが必要です。このためには、C#スクリプトを作成します。Projectビューで右クリックし、「Create > C# Script」と選択し、スクリプトに「ObjectRemover」という名前を付けましょう。
スクリプトをダブルクリックして開き、以下のコードを記入します。
using UnityEngine;
public class ObjectRemover : MonoBehaviour
{
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Input.GetMouseButtonDown(0))
{
if (Physics.Raycast(ray, out hit))
{
Destroy(hit.collider.gameObject);
}
}
}
}
各部の説明
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
: カメラの視点からマウスポインタのある位置へ向けてレイ(光線)を作成します。RaycastHit hit;
: レイが当たったオブジェクトの情報を格納するための変数です。if (Input.GetMouseButtonDown(0))
: マウスの左ボタンがクリックされた瞬間に、中のコードが実行されます。if (Physics.Raycast(ray, out hit))
: 作成したレイが何かしらのオブジェクトに当たったかを確認します。当たった場合はtrue
を返し、hit
変数に当たったオブジェクトの情報を格納します。Destroy(hit.collider.gameObject);
: レイに当たったオブジェクトをシーンから削除します。
ステップ3: スクリプトをオブジェクトにアタッチする
スクリプトを書き終えたら、それを機能させる必要があります。Unityエディタに戻り、Hierarchyビューから空のオブジェクトを作成し、インスペクタービューの「Add Component」ボタンをクリックし、「Scripts」セクションから先ほど作成した「ObjectRemover」スクリプトを選択して空のオブジェクトにアタッチします。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-13_171356.png)
ステップ4: ゲームをテストする
全ての設定が完了したら、Unityエディタの再生ボタンをクリックしてゲームを実行します。マウスでキューブをクリックすると、キューブがシーンから削除されることを確認できるはずです。
まとめ
Unityでマウスクリックによるオブジェクトの削除は、ゲーム開発の基本的なスキルの一つです。今回紹介した手順を理解し、自分のプロジェクトに応用することで、よりインタラクティブなゲームを作ることができます。Unityの学習は一歩一歩進めることが大切です。今回のチュートリアルがその一歩となり、Unityでのゲーム開発の楽しさを感じていただければ幸いです。
この記事では、Unityの基本操作からスクリプティングの初歩まで、初心者にもわかりやすく解説しました。Unityでのゲーム開発は無限の可能性を秘めています。ぜひこの基本をマスターして、自分だけのゲームを作り上げてください。