ApplyForceAtPosition-Problem

I have an rigidbody and want to apply two different force on two different points of a rigidbody. ApplyForceAtPosition takes the position where to apply force. However When it starts to rotate, points become out of the rigidbody.

Here is my code

rigidbody.AddForceAtPosition(LeftLiftVector,((transform.position)+(90,-90,0)),ForceMode.Force);
		rigidbody.AddForceAtPosition(RightLiftVector,((transform.position)+(90,90,0)),ForceMode.Force);
		rigidbody.AddForceAtPosition(LeftDragVector,((transform.position)+(90,-90,0)),ForceMode.Force);
		rigidbody.AddForceAtPosition(RightDragVector,((transform.position)+(90,90,0)),ForceMode.Force);

These points supposed to be Upper-Right and Upper-Left points of the Paraglider Canopy.

This is because rigidbody.AddForceAtPosition applies the force at a position in World Space coordinates and you are giving it object (local) space coordinates.

Transform from local to world by transform.transformPoint( vector3 ), where ‘transform’ is the transform of the object. Going from world to local is transform.InverseTransformPoint(…).

rigidbody.AddForceAtPosition(LeftLiftVector,((transform.position)+transform.transformPoint((90,-90,0))),ForceMode.Force);

Rigidbody functions that have ‘Relative’ in the name are expecting local space coordinates and all others expect world space coordinates.