スポンサーリンク
スポンサーリンク
UnityUnityの使い方

【Unityの使い方】isTriggerについて

Unity

isTriggerとは

UnityのisTriggerは、オブジェクト同士がぶつかったときの挙動を制御するための機能です。

通常のぶつかり方とは違って、通り抜けるときに何かアクションを起こすことができます。

なぜisTriggerを使うのか?

通常だと、オブジェクト同士がぶつかるとバウンドしたりするけど、

「isTrigger」を使うと、特定の場所に入ると何かが起こるようにできます。

例えば、プレイヤーがトリガーに入ると扉が開く、アイテムにぶつかるとHPが回復する。など

isTriggerの基本的な使い方

Colliderのついているオブジェクトを用意します。

ColliderのisTriggerプロパティにチェックが入っている場合、Colliderは「トリガー」となり、物理的な反応は発生しません。

そのかわりに、このColliderのついたオブジェクトに対して他のColliderのついているオブジェクトが進入または通過すると、OnTriggerEnter、OnTriggerStay、OnTriggerExitなどのコールバックメソッドが呼び出され、特定の処理が(下のコードだとデバックログが表示される)行われます。

using UnityEngine;

public class TriggerExample : MonoBehaviour
{
    // 他のColliderがトリガーに入ったときに呼ばれる
    private void OnTriggerEnter(Collider other)
    {
        Debug.Log("トリガーに入りました" + other.name);
    }

    // 他のColliderがトリガー内に滞在している間、毎フレーム呼ばれる
    private void OnTriggerStay(Collider other)
    {
        Debug.Log("トリガー内に滞在しています" + other.name);
    }

    // 他のColliderがトリガーから出たときに呼ばれる
    private void OnTriggerExit(Collider other)
    {
        Debug.Log("トリガーの外に出ました" + other.name);
    }
}

このようなスクリプトを使うことで、例えば、プレイヤーキャラクターがトリガーゾーンに入るとドアが開くなど、いろいろなことを実現できます。

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました