Hello everyone!

I am now working on some physics implementation of helicopter, and when Helicopter fly’s forward it’s all time descending a bit…How can I fix this?

I tried so, but it works only when Helicopter X-axis angle is 0.

rigidbody.AddForce (-Vector3.up * Physics.gravity.y * gameObject.rigidbody.mass)

So, the question is, if X-axis angle is 10 degrees, how much Force should I add?

In a simple helicopter physics, your lift decreases as you apply a forward angle of thrust, so you should increase it by 1/cos(angle to vertical) … roughly…

In real physics tou have other factors such as rotor induced velocity.

Looks like I am doing something wrong… I updated code with your suggestion but Helicopter goes down much more faster…

rigidbody.AddForce (-Vector3.up * Physics.gravity.y * gameObject.rigidbody.mass*(1/Mathf.Cos (FlyDegree)));

Is flydegree the angle from the vertical ? just double check that 1/cos(angle) is higher than 1 or use abs(angle)

FlyDegree = 10

Are you converting angle to radians ? Also you should not use physics.gravity.y as this value decreases when you pitch the helicopter nose…

I suggest using a forrmula where thrust is a separate float that increases indipendently based on input and then apply such thrust to your rigid body y axis.