Unity collider answer

Unity Trigger Not Firing: Why OnTriggerEnter Does Nothing

A trigger that never fires is usually a setup mismatch, not a mysterious event-system failure.

1. Confirm Is Trigger on the intended collider

The collider that acts as the trigger must have Is Trigger enabled. A normal collider blocks movement instead of behaving like an overlap volume.

2. Make sure the interaction has a physics body

Unity trigger setup guidance requires at least one dynamic participant with a Rigidbody or ArticulationBody. A common failure is two static collider-only GameObjects and no physics body.

3. Do not mix 2D and 3D physics APIs

OnTriggerEnter works with 3D Collider/Rigidbody. OnTriggerEnter2D works with Collider2D/Rigidbody2D. Mixing the two systems produces silence rather than an automatic conversion.

4. Check layer filtering

The Physics Layer Collision Matrix can prevent the overlap from being considered. Put both objects on default test layers temporarily to isolate the layer rule.

5. Check where the callback script lives

Verify the MonoBehaviour is enabled and placed on an object that participates in the physics interaction. Log the callback before adding gameplay conditions so you know whether the event itself is firing.

Official Unity references

Based on current Unity 6 Collider, Collider.bounds and MeshCollider documentation plus Unity trigger-collider setup guidance. Project settings and later engine updates can change behaviour.

Related Unity collider answers

Unity Collider Troubleshooter →

Unity Mesh Collider Not Working: Convex, Rigidbody & Mesh Checks →

Unity Collision Not Detected: A Short Diagnostic Order →

Unity Collision Layers: Fix the Layer Collision Matrix Before Rewriting Code →