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
- 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.
- Trigger Boolean Check: If
Is Triggeris checked on either collider, you MUST implementOnTriggerEnter(Collider other), NOTOnCollisionEnter(Collision col). - 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>");
}
}
}