- Home /
Verification Errors on creating a PolygonCollider2D from a contour trace
Basically, I'm trying to trace contours in order to create a collider for a chunk in a 2D block based game, similar to how I'm sure terraria does it. However, some of my vertices fail to verify. I'm not sure why they do this, as the MINIMUM distance that two vertices can have between them is 1 unity unit. It only seems to do it on certain parts of the terrain, however, and never if the terrain is solid rock (AKA just a square with 4 vertices). The maximum distance any two vertices can have between them is 10, as vertices can occupy any integer location from (0,0) to (10, -10). I've wondered if it could be due to floating point precision, as these particular "chunks" of blocks are at about 4000x, -16000y. Any advice?
Answer by MelvMay · Jun 11, 2015 at 10:06 AM
Unity checks vertex spacing before passing to Box2D otherwise Box2D simply asserts. We perform the exact same check Box2D does which is ensure that the square of the distance between two vertex is not less than '0.005' or in Box2D terms, less than '0.5 * b2_linearSlop'.
This is the case for BoxCollider2D corners as well as PolygonCollider2D however note that the vertex you specify for your outline path need to be decomposed into convex shapes. During this process, vertex may be created that are closer than in the original path.
If two are already pretty close then rotating them can have an effect as well (for static collider).
Obviously if you scale the collider then this changes how close the vertex are.
Your answer

Follow this Question
Related Questions
Physics2D.OverlapCircleAll and method call cause a huge drop in animation frames 1 Answer
How to scroll the background in a 2D game 1 Answer
Drag Player Object using Physics 2D 0 Answers
Raycast 2D hits sprite with collider, but returns error when not hitting any collider 2 Answers
2D physics settings for solid 2D objects with polygon collider 0 Answers