はじめに
Unityでゲームを作る際、「クリックでオブジェクトを削除する」という機能は、パズルゲームや教育アプリなど、多岐にわたるジャンルで活用されます。今日は、Unityの基本を押さえつつ、クリック操作でオブジェクトを削除し、すべてのオブジェクトを消去したら「CLEAR」というテキストを表示させる方法を、初心者にも分かりやすく説明します。
1. Unityプロジェクトの準備
まず、Unityを開き、「新しいプロジェクトを作成」を選択します。プロジェクト名を入力し、2Dまたは3D(プロジェクトに応じて)を選択後、プロジェクトを作成しましょう。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-27_184016.png)
2. オブジェクトの配置
Unityのエディタ画面で、「GameObject」メニューから「3D Object」を選択し、プロジェクトに必要なオブジェクト(例:Cube)を追加します。シーンにオブジェクトを配置し、必要に応じてサイズや位置を調整してください。クリア時に表示するテキストも配置し、サイズや位置の調整をしたらテキストの中身を空にしておきます。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-13_173033.png)
3. クリックでオブジェクトを削除するスクリプト
オブジェクトが配置できたら、クリックでこれを削除する機能を実装します。まず、Unityエディタの「Assets」フォルダ内に新しいC#スクリプトを作成し、「RemoveOnClick」という名前を付けます。スクリプトをダブルクリックして開き、以下のコードを記述してください。
using UnityEngine;
using UnityEngine.UI;
public class RemoveOnClick : MonoBehaviour
{
private int count;
public Text clearText;
void Start()
{
count = 0;
}
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);
count++;
}
}
if (count == 5)
{
clearText.text = "CLEAR";
}
}
}
このスクリプトは、Unityでのオブジェクト削除とゲームのクリア条件の実装に関するものです。ユーザーがマウスでクリックしたオブジェクトを削除し、特定の数(この場合は5)のオブジェクトを削除した時に「CLEAR」というテキストを表示します。以下に、スクリプトの動作の概要と改善点を説明します。
スクリプトの動作概要:
- Startメソッド: ゲーム開始時に実行され、
count
変数を0に初期化します。この変数は削除したオブジェクトの数を追跡します。 - Updateメソッド: ゲームが実行されている間、毎フレーム実行されます。このメソッドは以下の処理を行います:
- ユーザーがマウスの左ボタンをクリックした時、クリックされた位置からレイを飛ばし、オブジェクトにヒットしたかを検出します。
- ヒットしたオブジェクトがある場合、そのオブジェクトを破棄(
Destroy
メソッド)し、count
変数をインクリメントします。 count
変数が5に達した場合、clearText
のテキストを”CLEAR”に変更します。
4. 実行とテスト
全ての設定が完了したら、Unityエディタでプレイボタンを押し、ゲームを実行してみましょう。オブジェクトをクリックして削除し、全てのオブジェクトが消えた瞬間に「CLEAR」というテキストが画面に表示されるはずです。
まとめ
このガイドでは、Unityでクリック操作によるオブジェクトの削除と、全オブジェクト削除時の「CLEAR」テキスト表示の実装方法を紹介しました。この基本をマスターすれば、さらに複雑なゲーム機能の開発にも挑戦できるようになります。Unityでのゲーム開発は試行錯誤の連続ですが、一つ一つの機能を丁寧に実装することで、徐々に理想のゲームを形にしていけるでしょう。