- Home /
getting the radius of a capsule collider
I'm trying to make a 2D mario galaxies style platformer where there are a ton of small planets and the player falls towards the nearest planet.
What I have now simply checks what distance the player is from all the planet objects, selects the closest, and has the player's gravity set to the center of that planet.
This should work, but for planets with large radii, the player almost never can get close enough to the planet, so i want to subtract the radius of the planet.
I've tried accessing CapsuleCollider.radius but it always returns 0.5 and transform.localScale.x / 2.0 also doesn't return the right value.
Answer by AlwaysSunny · Mar 04, 2012 at 07:03 AM
A CapsuleCollider's radius will always be .5, and the height will always be 2, unless you change them yourself. (I think...)
It also scales with the object. In other words, your object's scale determines the "real-world" scale of the collider. Whether your object scale is 1x1x1 or 10x10x10, the collider's radius will still be .5, even though the collider encompasses different amounts of space.
You've probably got the right idea using localScale instead, assuming you're using localScale to manipulate the size of the planet(s).
As an alternative, consider adding a second game object as a child with its own capsule (or sphere?) collider, and use that one for your collision check instead.
Or, if you're working with spherical areas for planets anyway, consider using a simple distance check instead of colliders. Might be easier.
Right now I'm just checking distance to player $$anonymous$$us the planet.transform.localScale.x / 4.0 which roughly works although is a total hack because I had to send it to usability in an hour.
I may just have to make a child object with a separately scaled capsule collider as you said, but I suspect there's a right way to get the calculation out of the localScale.x (the planets are perfect circles so the x and y of the localScale are the same, theoretically it's diameter).
Your answer
Follow this Question
Related Questions
How to calculate distance between sphere and tangent plane for determining grounded state? 0 Answers
2D 360 degress platformer example needed 0 Answers
Drawing capsule gizmos and keeping it with the object scale 2 Answers
Collision between CircleCollider2D and BoxCollider2D causing physics problems 0 Answers