So, in my game the player is basically on top of a ball that gets rotational acceleration applied to it and rolls. The ball has a rigidbody and a sphere collider, and I like the movement of the ball so far.
I would like the player to have a collider so the ball can’t roll under a gap or something and have the camera pass through walls. I’m having trouble with the collider representing the player (the capsule on top of the ball).
Because the ball rotates, I can’t simply make the collider a child of the ball, as the collider would rotate with it. I’ve tried using scripts to fix its rotation and position above the ball every Update and FixedUpdate, but it either creates horrible jitter or just passes through walls as if the collider isn’t there.
The closest I’ve come is by using joints. I’ve managed to fix the position and rotation above the ball, but the problem with this is a rigidbody has to be attached to the capsule, and so it has to have mass. With a mass comparable in size to the ball’s, the ball has to pull along the capsule and starts and stops sluggishly. If the mass of the capsule is very low, at high speed collisions it just gets pushed around and doesn’t stay where I’d like it to be:

I’ve messed around with articulation bodies, but they don’t seem to have options that allow the collider to stay where it is relative to the parent and not rotate.
So, does Unity have some feature that would allow my capsule collider to stay with the rotating object in this way? If not, I will get to scripting and try to work something out with Physics.OverlapCapsule or something. Just want to check if anyone can help me with a solution I haven’t considered.
Thanks
