You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
…ollisionend events (#2301)
Closes#2300
This PR solves the issue of duplicate `collisionstart`/`collisionend` events by keeping track of the `CompositeCollider` in the contact id (which makes it no longer unique) but allows the dispatch logic for start/end to work unchanged in the `CollisionSystem`. This is done with a slightly gross hack to decorate colliders with a composite id if they are part of a composite collider.
This issue was bought to our attention by @Cretezy in this excalibur-tiled issue excaliburjs/excalibur-tiled#344 (comment)
quickshare-2022-04-15_12.39.38.mp4
Steps to Reproduce
This is easiest to reproduce with a TileMap or a CompositeCollider where a geometry seam is created.
This can be reproduced in the sandbox environment by carving out a gap and walking across the seams.
Expected Result
Only 1 collisionstart/collisionend pair should be fired while colliding with the CompositeCollider
Actual Result
New collisionstart/collisionend are fired when a geometry seam is crossed
Environment
Current Workaround
None
The text was updated successfully, but these errors were encountered: