Collision detection not working in Unity 2D

c#, unity-game-engine

Solution

Unity has replicated all of the physics methods for 2D with the word "2D" stuck onto the end! So for your example, it should be changed to:

void OnCollisionEnter2D(Collision2D collision)

And the same with basically any other 2D physics thing.

Problem

I have two 2D game objects. They each have a Box Collider 2D and a Rigid Body 2D which is not kinematic. When the game plays, one moves towards the other and collides with it. However, I also have the following method in the moving GameObject: ``` void OnCollisionEnter(Collision collision) { print( "Collided with someone" ); } ``` The print statement never prints, so presumably the method is never called. Where am I going wrong?

Original source