How does torque scale with transform?

I’ve read that rigidbodies don’t care about their transform’s scale. However, I’m noticing that if I scale my gameobject up, it rotates more slowly with the same torque. (As per Unity’s guidelines, I am not scaling the parent of the rigidbody, but the same transform as the rigidbody.)

E.g:

void FixedUpdate()
{

rigid.AddTorque(transform.up * amount, ForceMode.Force);
Debug.Log("Torque: " + transform.up * amount + ", Angular V: " + rigid.angularVelocity);
}

At scale 1.0,1.0,1.0 this converges to “Torque: (0.0, 1426.8, 0.0), Angular V: (0.0, 4.3, 0.0)”

At scale 4.0,4.0,4.0 this converges to “Torque: (0.0, 1426.8, 0.0), Angular V: (0.0, 0.3, 0.0)”

Why?

This is because the scale affects the inertia tensor. Check out rigidbody.inertiaTensor. If you want your rigidbody to rotate the same independently of the scale, then ensure the inertia tensor keeps the same value.

1 Like

Thanks, that was what I was looking for!