COLLISION • TRIGGERS

Unity Collider Not Detecting Collisions or Triggers

Diagnose and fix OnCollisionEnter or OnTriggerEnter callbacks failing to execute between game objects.

The 3 Golden Collision Rules

  1. At least ONE object MUST have a Rigidbody: If two static colliders touch without any Rigidbody attached to either object, Unity PhysX will NEVER invoke collision callbacks.
  2. Trigger Boolean Check: If Is Trigger is checked on either collider, you MUST implement OnTriggerEnter(Collider other), NOT OnCollisionEnter(Collision col).
  3. Layer Collision Matrix: Open Project Settings → Physics and verify that the intersection checkbox between both object layers is checked.
1

Verified Trigger Detection Template

TriggerCheckpoint.cs (C#)
using UnityEngine;

public class TriggerCheckpoint : MonoBehaviour
{
    private void OnTriggerEnter(Collider other)
    {
        // Debug log to test if trigger event fires
        Debug.Log($"Trigger entered by: {other.gameObject.name} (Layer: {LayerMask.LayerToName(other.gameObject.layer)})");

        if (other.CompareTag("Player"))
        {
            Debug.Log("<color=green>[Checkpoint Reached!]</color>");
        }
    }
}

Learn More