You seem to be answering your own question in your "question", and it seems to me like you are asking for clarification. Please note that my answer is Unity specific.
Why use Rigidbodies?
When you use a rigidbody, then you should use a rigidbody. Allow me to explain what I mean. Often times, when I see developers using rigidbodies; they are neglecting its use. They are:
- Directly modifying the transforms position and attempting to use the rigidbody correctly
- Using it for collision response only and doing No.1
- Have an incorrect understanding of transforms and rigidbodies.
Golden Rule: Use a rigidbody when you want all aspects of your entity to act under the laws of physics (gravity,forces,torque, etc.)
Moving your body
Keeping the golden rule in mind(see above) and the three no-no's, we can talk about how to move your rigid-body. In Unity, you have AddForce()
and you have AddTorque()
.
Pretty straightforward. The AddForce function, of course, adds a force to your rigidbody. AddTorque adds torque, which is a twisting force, causing your object to spin around a specified axis.
You might ask the question, "Well, why can't I directly modify the position when using a rigidbody?" in regards to movement, per say.
You can, but you'd essentially be emulating the behavior of a transform, that of which is not able to be acted on by force or torque. Transforms, hence the name, can be "translated", but it's not the same as moving it with physics. Rigid-bodies, however, are able to be acted on by force and torque for movement related purposes. Please note that directly modifying the rigidbody's position is acceptable for certain cases.
Le Documentation