- Home /
How do you limit velocity on a rigid body in only one direction?
How do you limit velocity on a rigid body in only one direction? Or even better, different directions having different limits.
I saw http://answers.unity3d.com/questions/9985/limiting-rigidbody-velocity.html but I don't think I can apply it to what I'm trying to do.
Answer by sparkzbarca · Nov 15, 2012 at 04:47 AM
//limits movement along the vertical up direction by maxvelocity
if (CurrentDirection == transform.up)
{
if(rigidbody.velocity > MaxVelocity)
{
rigidbody.velocity = MaxVelocity;
}
}
Wouldn't that limit in all directions, but only when you're moving up?
it would limit only when your moving up. because it wouldnt do a velocity check unless your moving up.
What directions are you trying to do
this will limit in 2 different directions by 2 different velocities.
float up_velocity_max = 10;
float forward_velocity_max = 8;
//we'll assume the R key makes you move up
if(input.getkeydown(keycode.R))
{
if(rigidbody.velocity > up_velocity)
{
rigidbody.velocity = up_velocity;
}
}
//we'll assume the W key makes you move forward
elseif (input.getkeydown(keycode.W))
{
if(rigidbody.velocity > forward_velocity_max)
{
rigidbody.velocity = forward_velocity_max;
}
}
if your moving up you wont trigger the forward velocity max so you wont be constrained by it.
What about when you're moving diagonal? Up and forward. I might have it wrong, but wouldn't it limit it to the first with the else, and to the second without the else?
alright so you tell me exactly what you want to do and i'll tell you how to do it lol.
are you looking for a set number of directions or a kind of infinite amount of directions with velocity being modified by direction?
if you were holding both keys the first would trigger. The second statement would never get tested for because elses dont get triggered UNLESS the first doesn't
if the first triggers the second will never even try.
Haha okay. I was wanted to make a top down space ship game (much like Tyrian or Raptor), using addforce to move the ship. But have the ship move left and right at a different speed than moving up, and if I could also different from moving down.
I'm opting for force rather than translate because I also want the ship to bounce more naturally when it hits something.
Your answer
Follow this Question
Related Questions
Throwing knife goes straight 1 Answer
velocity direction and reversing it 1 Answer
Limit Rigidbody Velocity 4 Answers
Rigidbody Local Velocity 1 Answer
How to move rigidbody object towards a target object 0 Answers