- Home /
AddRelativeTorque causing wild spining
Hey all, I am trying to make simple flight controls. Using the mouse for roll and pitch and the horizontal axis for yaw.
void FixedUpdate () {
// Get Input
float rollInput = Input.GetAxis("Mouse X");
float pitchInput = Input.GetAxis("Mouse Y");
float yawInput = Input.GetAxis("Horizontal");
// Calculate Change
float targetYawVelocityChange = yawInput - rigidbody.angularVelocity.y;
float targetRollVelocityChange = rollInput - rigidbody.angularVelocity.z;
float targetPitchVelocityChange = pitchInput - rigidbody.angularVelocity.x;
// Apply Torque
rigidbody.AddRelativeTorque(targetPitchVelocityChange,
targetYawVelocityChange,
targetRollVelocityChange);
}
I am trying to use a similar idea to the RigidbodyFPSController on the wiki, using the velocity change so that when all input stops the craft will slow to a stop (rotationally)
The problem is this, whenever I turn it starts madly spinning and I cant really see why. Can anyone point out my error?
I'm willing to bet the value of your input floats aren't what you think they are. Debug log all members of the equation to find out which is throwing it off
Done that, it is very hard to tell due to the speed at which it happens though. The weird thing is, if i turn my mouse off (i.e no pitch or roll input) and i rotate through yaw by 180 it starts to roll. Even though there has been nothing modifying the z spin axis.
how about an edge case at the very beginning of your input? With relative force your calculations can go wonkey if you don't start them off with sane values.
Why add relative torque and not add torque?
Do you find the uncontrollability happens differently based on the direction you go from the origin?
@ Habitablaba Yes, it does differ when going different directions from origin. Im using relative torque so that all motion is relative to the axis of the craft.
@ smoggach I dont understand what you mean really. the start values are always just zero.
Answer by KEELAN · Nov 10, 2014 at 06:31 PM
Doing some reading I found the best way to achieve what I am looking for is to use a PID controller. Im implementing one now. Thanks for all the input. Cheers
Your answer
Follow this Question
Related Questions
LookAt but using physics AddRelativeTorque 1 Answer
Vector3 and AddRelativeTorque 1 Answer
Sphere movement very erratic and uncontrollable. 1 Answer
Keep a rolling balls momentum 1 Answer
Physics-based Homing Missile 2 Answers