こんにちは!今日は、Unityでレイキャストを使って、マウスでクリックされたオブジェクトを検出し、シーンから削除する方法をわかりやすく解説します。これは、ゲーム開発でよく使われるテクニックで、例えば敵キャラをクリックして倒す場合などに役立ちますよ。
ステップ1: シーンにオブジェクトを配置する
まずは、シーンにいくつかのオブジェクトを配置しましょう。
- ヒエラルキー(Hierarchy)ウィンドウで右クリックします。
- 「3D Object」 → **「Cube」**を選びます。これでシーンにキューブが追加されます。
- キューブを複数追加して、シーンが賑やかになるようにしましょう。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-13_172045.png)
ステップ2: スクリプトを作成する
次に、レイキャストを使ってオブジェクトを検出し、クリックされたオブジェクトを削除するスクリプトを作成します。
- プロジェクト(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);
}
}
}
}
ステップ3: スクリプトをオブジェクトにアタッチする
作成したスクリプトをカメラにアタッチして、動作させます。
- Hierarchyビューから空のオブジェクトを作成します。
- このスクリプトをドラッグ&ドロップで「空のオブジェクト」にアタッチします。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-13_171356.png)
ステップ4: 実行して確認する
これで準備は完了です!シーンを実行して、キューブをクリックしてみてください。クリックしたキューブが削除されるはずです。
今回の手順で、レイキャストを使ってマウスでクリックされたオブジェクトを検出し、シーンから削除する方法を学びました。この方法を使えば、ゲーム内で様々なインタラクションを実現できます。ぜひ試してみてくださいね!
おすすめのアセット
「RaycastPro」は、Unityでの物理演算を強化するためのツールです。物理ベースのゲームやシミュレーションを作成する際に役立ちます。このアセットは、標準的なレイキャストを超える機能を提供し、より精度の高いヒット判定や、複雑なシナリオでのレイキャストのパフォーマンスを最適化します。
特徴:
- 高速で効率的なレイキャスト処理
- 複数のレイキャストを同時に処理
- レイキャストの結果を詳細に分析
- 直感的なインターフェースで使いやすい