How to make child rigidbody rotate independently, as though rolling along ground?

Hello everyone,

I am trying to replicate a football rolling along the ground when a player is dribbling it. The football has a rigid body and collider, and the player uses a nav mesh to move about.

At the moment, when a player gets close to the football, the football is parented to the player with an offset of a small distance. At this instant, I remove all velocity from the football to prevent it from rolling away if it is already in motion. This all works as I expect it to.

However, where the football does move relative to the player, it doesn’t rotate relative to the ground. I want to make the football rotate somehow to give the appearance of it rolling along the floor- I am perfectly happy for it to simply rotate by a constant amount every second.

I’ve tried adding torque to the ball, incrementing it’s x-axis rotation every frame, giving it force, but none of these have worked; the ball remains static in its rotation.

What can I do to make it rotate, please?

separate the model from the physics by having the mesh components on a child of the gameobject with the rigidbody, then just rotate the model child? visual rotation, but no actual physics interactions.

I’ve tried doing exactly that but it hasn’t worked - exactly the same problem persists.

Oh, I have managed to make it work - although I’d tried it before, I used your suggestion again and realised my code for constantly rotating the ball was wrong (of all things…)! Thanks for your help!