- Home /
Why isn`t my 2D AddTorque working?
Hello I have this C# script attached to player in Fixed Update:
rigidbody2D.AddTorque(Input.GetAxis ("Horizontal") * 5f);
It just won`t work. AddForce works and everything else in that script just not this.
What I have tried so far:
if(Input.GetButton("Horizontal"))
rigidbody2D.AddTorque(5f);
Even this won`t work in Update without any key check:
rigidbody2D.AddTorque(5f);
Yes script is attached, Yes object has Rigidbody2D. As I said, AddForce works, just torque not. Is Kinematic and Fixed angle are Checked OFF.
Please help I am getting hopeless.
There's two possible reasons I can think of off the top of my head:
1: The rigidbody2D is kinematic. Then physics (such as torque) won't be applied to it
2: The rigidbody2D is has fixed angle turned on. In that case, it won't be rotated by torque
Answer by Wrymnn · Oct 06, 2014 at 01:35 PM
THE SOLUTION:
2D addTorque is bugged.
When you do this:
public float rotationSpeed; //And now you assaign it in inspector
void FixedUpdate()
{
rigidbody2D.AddTorque(Input.GetAxis ("Horizontal") * rotationSpeed);
}
It won`t work. Because it`s bugged. But when you don`t assaign it in the inspector, it works fine.
void FixedUpdate()
{
float rotationSpeed = 5.0f;
rigidbody2D.AddTorque(Input.GetAxis ("Horizontal") * rotationSpeed);
}
This works. At least for me.
Had the exact same problem and solution. Thanks so much for posting! (You would think the people over at Unity would have fixed something like this by now...)
I still have this problem, Unity 2020.1. How should I fix it, so I can change the value from the inspector? Hard coding a value works, just like you wrote here, but I don't think it's an ideal solution :)
Answer by unimechanic · Sep 29, 2014 at 07:35 PM
Maybe the value calculated with " Input.GetAxis ("Horizontal") * 5f " is too small for the mass of the object, try a very large one.
Also call WakeUp after adding the torque: http://docs.unity3d.com/ScriptReference/Rigidbody.WakeUp.html
No I think 2d add torque is a bit bugged.
But I solved my problem. Ty.
$$anonymous$$ind sharing HOW you solved your problem, Wrymnn?
Your answer
Follow this Question
Related Questions
OnSerializenetworkView not doing anything?? 1 Answer
troble with the Axis in unity 1 Answer
OnTriggerEnter not working 0 Answers
FindGameObjectsWithTag not working 1 Answer