【Unity】Objectに衝突判定を実装しよう!誰でもできます!

Unity Unity

Objectに衝突判定を実装しよう!誰でもできます!

Unityを使ってゲーム制作をする際に、ObjectAとObjectBが衝突したらイベントを発生させたいという場面が多々あると思います。

そんな時に役立つ役立つ方法を今回は解説します。

衝突したら片方のオブジェクトを消してみよう!

衝突判定の実装例として、今回はオブジェクトが衝突したら片方のオブジェクトが消えるようにしたいと思います。

スクリプトの作成

Assets→Create→C#Script

Add-Script

オブジェクトを消すスクリプトなので、スクリプト名はEraseObjectとします。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EraseObject : MonoBehaviour
{
void OnCollisionEnter(Collision collision)//オブジェクトが衝突したら
{
//ゲームオブジェクトを破壊
Debug.Log("衝突しました");
Destroy(gameObject);
}
}

Objectを作成

まずは、ObjectをCubeとSphereの2種類を追加しましょう!

Hierarchy→3D Object→Cube

Add-Cube

Hierarchy→3DObject→Sphere

Add-Sphere

SphereのPositionYを少し上にしておきます。

Objectの設定

UnityエディタにもともとあるRigidbodyコンポーネントをSphereにAdd Componentで追加してSphereを剛体にします。

Add-Rigidbody

今回のプロジェクトでは、Cubeのポジションを固定して、Capsuleを上から落下させるので、RigidbodyコンポーネントのUse Gravityにチェックを入れましょう。

Use Garvityにチェックを入れることで、Objectに重力を与えることができます。

Use-Gravity

Assetsフォルダに入ってるだけではスクリプトは使うことができないので、先ほど作成したスクリプトをSphereにドラックアンドドロップして追加します。

Add-EraseObject

以上で準備が整いました。

実行結果

まとめ

今回は、Colliderを使って衝突判定を実装しました。

ゲームを作るうえで欠かせない要素なので、しっかり使いこなせるようにしましょう!

コメント

タイトルとURLをコピーしました