x


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?

more ▼

asked May 16 '12 at 11:47 PM

Apollo gravatar image

Apollo
2 2 3 4

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

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 ;)
more ▼

answered May 16 '12 at 11:59 PM

Bunny83 gravatar image

Bunny83
46.9k 12 50 210

Thanks for the quick reply!

i'm not sure how to "bring it into local space so you know around which axis you're rotating", the angularVelocity vector just yields one number (magnitude) but i don't know what axis it's on or how to assign it to one :/

if i can identify the current rotation of an object, it would be super easy to just write a line for counter thrust, but i've yet to find a way of returning an objects rotation...

May 17 '12 at 01:15 AM Apollo
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x2245
x1948
x186
x4

asked: May 16 '12 at 11:47 PM

Seen: 606 times

Last Updated: May 17 '12 at 01:15 AM