- Home /
AddTorque Isn't Working?
My problem is that for some reason it stops rotating after a while when it's going forwards instead of carrying on rotating. Also even when im going backwards I never get "Backwards" in be console.
Heres my script
#pragma strict
var speed : float = 1;
var backward : float = 1;
var rotationRight : float = 1;
var rotationLeft : float = 1;
var startingSpeed : float = 5;
var spin : float = 10;
var maxSpeed : float = 50;
var speedDifference : float = 5;
var currentSpeed : float = 0;
var brake : float = 10;
function Start () {
rigidbody2D.AddForce (Vector2(0, -startingSpeed * 0.5));
}
function Update () {
currentSpeed = rigidbody2D.velocity.magnitude;
speedDifference = maxSpeed - currentSpeed;
if (currentSpeed > maxSpeed) {
rigidbody2D.AddForce (Vector2(speedDifference, 0));
}
if (currentSpeed < maxSpeed) {
rigidbody2D.AddForce (Vector2(speed, 0));
}
if (Input.GetMouseButton(0)) {
rigidbody2D.AddForce (Vector2(brake, 0));
}
if (currentSpeed < 0) {
Debug.Log ("Backwards");
rigidbody2D.AddTorque (-spin, 0);
}
if (currentSpeed > 0) {
Debug.Log ("Forwards");
rigidbody2D.AddTorque (spin, 0);
}
}
Thanks in advance
Also sorry if this is a newby mistake or there were other questions answering this. I looked and couldn't find any
NOTE: I would like answers to be in JS (javaScipt, unityscript whatever you want to call it) because this game is being made purely for learn JS so doing it in C# or boo isn't going to help
Answer by MrSoad · Dec 15, 2014 at 04:52 PM
What is the Angular Drag setting on your rigidbody? The higher this is the more the spin will slow down(even in mid air).
Also you set the currentSpeed var to the magnitude of the velocity, AFAIK the magnitude is always a positive value. So currentSpeed will never be less than 0, so you will never get the "Backwards" effect.
@$$anonymous$$rSoad $$anonymous$$y angular drag is 0.05 i turned it to 0 and still stopped spinning. If it helps I have a physics material attached to the object and have also turned off gravity. And would you have any idea how I would achieve the "Backwards" effect?
Take a look at this post for how to get the correct currentSpeed, as for why it still stops spinning I'm not sure.
http://answers.unity3d.com/questions/364910/direction-of-rigidbodyvelocitymagnitude.html
Take a look at my answer to this, I had forgot to mention about changing your Angular Drag Setting :
http://answers.unity3d.com/questions/857196/how-to-add-spin-to-a-ball-in-pong-game.html
Your answer
Follow this Question
Related Questions
Portions of code don't work in Monodevelop 1 Answer
OnTriggerEnter Or OnCollisionEnter? 3 Answers
Top Down car/vehicle movement 1 Answer
Collsion without ririgibody 1 Answer
How to assign Rigidbody2d to a player using Javascript 1 Answer