Search Issue Tracker

Fixed in 2018.2.X

Fixed in 2018.1.X

Votes

0

Found in

2017.2.0b5

2018.2.0a1

Issue ID

999627

Regression

Yes

[Physics2D] OnCollisionEnter2D Collision2D.contacts returns an empty array

Physics2D

-

A fast moving projectile that collides with a corner of two colliders returns an empty array of contacts in the OnCollisionEnter2D event.

To repro:
1) Open the "repro.unitypackage" and the scene "LiteralCornerCase".
2) Notice the setup - there are two box 2d colliders that form a corner and a bullet that is about to hit that corner at a high speed.
3) Enter play mode
4) Notice the "Got zero contacts!" log in the console, indicating the issue.

Removing either of the blocks that form the corner prevents this issue. Reducing the velocity of the bullet also prevents this issue.

The problem is in destroying the bullet inside the OnCollisionEnter2D event - this messes up any future contact checks. Since there are two blocks to be collided with, one gets the collision event and destroys the bullet. The other also gets the collision event, but the bullet has already been prepped for destruction, thus all contacts return 0.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.