Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Kale · Nov 15, 2012 at 03:15 AM · rigidbodyvelocitydirectionlimitdirectional

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.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

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;
     }
 }
Comment
Add comment · Show 11 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Kale · Nov 15, 2012 at 05:24 AM 0
Share

Wouldn't that limit in all directions, but only when you're moving up?

avatar image sparkzbarca · Nov 15, 2012 at 05:35 AM 0
Share

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.
avatar image Kale · Nov 15, 2012 at 05:42 AM 0
Share

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?

avatar image sparkzbarca · Nov 15, 2012 at 06:04 AM 0
Share

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.

avatar image Kale · Nov 15, 2012 at 06:07 AM 0
Share

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.

Show more comments

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

10 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

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


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges