2D: Destroy object with dynamic collider after exiting object with static collider

I have checked out countless similar threads all over the net and can’t for the life of me figure out what I am doing wrong.

I have a static Box Collider 2D which covers the entire game area.

77940-boundary.png

It has “Is Trigger” checked and contains a very simple script which should destroy every object that exits it.

using UnityEngine;
using System.Collections;

public class DestroyByBoundary : MonoBehaviour {
	void OnTriggerExit(Collider other) {
		Debug.Log ("OnTriggerExit");
		Destroy (other.gameObject);
	}
}

The player character shoots bullets which have a dynamic Circle Collider 2D.

However, the bullets are never destroyed when they leave the game area and just fly on indefinitely. The debug statement never gets executed either, of course. I have tried the same thing with OnTriggerEnter, which yields the same result.

If any more information should be needed, I’ll be happy to provide it.

The problem was that I was using 3D classes and methods in a 2D environment.

I had to change the parameter type of OnTriggerExit to Collider2D and the method itself to OnTriggerExit2D.

using UnityEngine;
 using System.Collections;
 
 public class DestroyByBoundary : MonoBehaviour {
     void OnTriggerExit(Collider other) {
         Destroy (other.gameObject);
     }
 }