OnCollisionEnter2D not calling properly

I’ve been working on this project for several weeks now. Actually, I released a version live on the App Store, but I just began to do some bug fixing. Its called Pinbrick and the premise of the game is to hit a ball with two paddles (like pinball) and break bricks by hitting them with the ball (like brick breaker). The issue is, I updated to Unity 5.2.3f1 and began to fix some stuff but when I started testing, the collisions are not working properly. For example, the ball has a “kill zone”. When the ball falls through the paddles and hits the kill zone, it should destroy itself and log “hit”. Since the update, the ball will bounce several times before running the proper method. The same thing happens with the ball hitting the breaks. It takes several tries to get a proper collision detection. Note that the ball and everything else always collides and bounces, but it appears as though the OnCollisionEnter2D() method is not properly called each time. Is this something to do with the update? Nothing was wrong until then, but I understand it could be something else. Honestly, I have no idea. Thanks for the help!

I’ve got the same exact problem! I also assume that tha update caused that problem!
And to be honest i dont know why as well. But you can fix it by adding a Rigidbody2D (is kinematic) component to the GameObject which is supposed to recieve the Collistion Event in this case the “kill zone”.

seems to be a bug. Looks like it has been addressed in the 5.2.3p1 patch


from the 5.2.3p1 release notes:

(742572) - Physics: Ensure that OnCollisionEnter2D is always called if a contact starts and ends during a single physics update.