ニュース

Top  >   21. 物理・Raycast・当たり判定  >   Q, ぶつからずに、特定のエリアに入ったことだけ知りたい

Q, ぶつからずに、特定のエリアに入ったことだけ知りたい

2026/03/18

メインコンテンツへスキップ
< すべてのカテゴリに戻る

A,結論

エリア側の Collider で Is Trigger を有効にし、OnTriggerEnter で侵入を検知します。

原因 / 背景

3Dのトリガー通知には双方の Collider と、少なくとも一方の Rigidbody が必要です。トリガーは相手を物理的に押し返しません。

実装 / 手順

  1. エリアに Box Collider などを付けて Is Trigger をオンにします。
  2. 通常の3D Collider同士で検知する場合、エリア側か侵入側に Rigidbody を付けます。固定エリア側に付けるなら Is Kinematic をオン、Use Gravity をオフにします。
  3. Physics の Layer Collision Matrix で双方のレイヤー間の判定を許可します。スクリプトはトリガー側に付け、Player タグを使う場合は事前に登録します。
  4. 2D物理では Collider2D / Rigidbody2D と OnTriggerEnter2D を使います。

サンプルコード

using UnityEngine;

public class TriggerZoneNotifier : MonoBehaviour
{
    [SerializeField] private string targetTag = "Player";

    private void OnTriggerEnter(Collider other)
    {
        if (!string.IsNullOrEmpty(targetTag) && !other.CompareTag(targetTag))
        {
            return;
        }

        Debug.Log($"侵入を検知: {other.name}");
    }

    private void OnTriggerExit(Collider other)
    {
        if (!string.IsNullOrEmpty(targetTag) && !other.CompareTag(targetTag))
        {
            return;
        }

        Debug.Log($"エリア外へ退出: {other.name}");
    }
}

※ 実機確認が必要な項目は、Editor だけで判断せず対象デバイスでも必ず動作確認してください。

難易度:Level 2(初心者)
対象プラットフォーム:PC,Android,iOS,Unity
関連キーワード:トリガー,侵入,判定,検知

Level 1-2 向けバナーLevel 3-5 向けバナー 1Level 3-5 向けバナー 2