AngularDrag -> in Just one plane

To be honest I don’t fully understand angular drag: how can i use it in only on one or two planes? (ie. xyz)

I’d assume angular drag was for airplanes, but what part of an airplane pulls an equal amount of drag in every direction???

Anyway, i’m using angular drag to stabilize a space flight sim that uses RelativeTorque to spin, and angular drag to stabilize, but i don’t want my object to stabilize in every direction at once, rather, once in each plane (xyz or pitch/yaw/roll)

My Question:
can some one tell me how to use angularDrag in just ONE plane?

something like: rigidbody.angularDrag.x = myAngularDrag1;

obviously not a real line, but is there something like this?

Real drag is generated by the air-resistance of the surfaces. In most game / physics engines such calculations would be way too heavy and you actually need to consider the true shape of the object.

The drag values are just simulated drag which is just dependent on the velocity / angularVelocity. It actually wouldn’t make sense to implement 3 different drag values for each local space axis since the object could have any shape (something diagonal or whatever).

I see two ways to implement the individual drag values for each local space axis:

  • Use the angularVelocity vector, bring it into local space so you know around which axis you’re rotating. Normalize this vector and multiply each component with your desired drag values. Finally add up all 3 values and assign it to angularDrag. This of course need to be done in FixedUpdate.
  • The second way is to implement the drag behaviour yourself. Usually accelerated / decelerated calculations can be tricky to get them frame independent, but if you use FixedUpdate it should be easier :wink: