Equivalent to this using torque

transform.Rotate(Vector3.right * Time.deltaTime100, Space.World);
transform.Rotate(Vector3.forward * Time.deltaTime
360, Space.Self);
So, what I wonder is if there’s a way of creating the results gained with this bit of code when using AddTorque(), AddRelativeTorque(), a combination of both or any other physics-based solution. The result here is an object rotating around two separate axes. My tests using different forms of torque has so far only given me an object rotating around a single axis; Vector3(1,0,1) which is nowhere near my desired results.

Does Unity simply combine axes when using torque or have I, as I hope, made mistakes in my tests?

That can’t work :wink: You always have a rotation around one axis. With forces the momentum is building up slowly. What you want would result in strange forces that change the direction very quickly. All physics parameters(velocity, angularVelocity) are always calculated in worldspace. If you add a force or torque in local space, it’s just converted into worldspace.

Momentum doesn’t like a changes of velocity. You always need the same amount of force to stop a motion that was needed to create it. Rotationaxis can’t be simply rotated. It’s the same as a spinning top.

So to answer your last question, yes, the angular momentum is always around one axis.

angular momentum

edit(Oct 2017)
I just realised that Unity’s physics simulation does not follow Newton’s first law. The main issue here is that without external forces / torques the linear momentum as well as the angular momentum stays constant. However this migh lead to confusion because linear momentum is not the same as linear velocity. Though the only difference here is that the linear momentum is simply the linear velocity multiplied by the mass. Since the mass is constant we can simply ignore this difference because if the velocity stays constant the linear momentum will also be constant.

However here’s the problem when it comes to angular momentum and angular velocity. The relation is similar but instead of the mass of the object we have to deal with the objects inertia. Unlike the mass the inertia of an object depends on the axis of rotation. That means the inertia can actually change while the object rotates. If the angular velocity stays constant (that is what Unity does) the actual angular momentum does change when the moment of inertia changes due to rotation.

That means the angular momentum of the object is not preserved in some cases. Since the angular momentum should be constant the actual angular velocity should have changed which could result in a tumbling motion of the object. Here’s a video which explains the difference between the angular velocity (w; omega) and angular momentum (L)

Because Unity does not preserve the angular momentum such a tumbling motion as shown in the middle lower animation is not possible in Unity.

I would consider this as a bug. Though maybe this was intended, somehow, like the strange drag calculation which does not even follow the documentation.