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 Tomasz Kempa · Apr 29, 2014 at 11:03 AM · jumpindependent

Jump not affected by changing velosity.y

Hello :)

I've just done double jump in my game and in a some way it's affected by changing velosity.y by game object. It means the power of second jump depends on a time(?) and changing velosity.y(?) between double clicking "Space". I want to make it independent and the jump's power is need to be the same all the time. Where am I wrong?

Thanks in advance!

Tomas

 void Update () 
 {
     if(Input.GetKeyDown(KeyCode.Space))
     {
         if(grounded)
         {
             rigidbody2D.AddForce(new Vector2(0f, jumpingForce * moving));
             grounded = false;
             jumpCounter = 1;
         }
         else if(!grounded && jumpCounter == 1)
         {
             jumpCounter++;
             rigidbody2D.AddForce(new Vector2(0f, jumpingForce * moving));
             //Debug.LogError("And second jump");
         }


      }
 }
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 Jenesis · Apr 29, 2014 at 12:35 PM

It sounds like you want to be setting the velocity to achieve what you're after, rather than applying a force.

Let's say that when your player is grounded, the force you apply is enough to make the player start to move upward at 5m/s. If the player jumps off a cliff, and ends up travelling downwards at high speed, then applying that force again won't make them switch to moving up at 5m/s, it'll just slow them down a bit - it takes a bigger force to make a falling object move upwards at that speed than a stationary one. What you want is to just override the vertical speed.

Unfortunately you can't just set rigidbody2D.velocity.y - this is because Rigidbody2D.velocity is a property rather than a variable and actually returns a COPY of the velocity vector, so then setting .y doesn't actually affect the rigidbody. Try something like this:

 float jumpVelocity=10.0f; //Or whatever is appropriate for your game.
 Vector2 currentVelocity=rigidbody2D.velocity;
 rigidbody2D.velocity=new Vector2(currentVelocity.x, jumpVelocity);

This will override the current vertical speed with your jumping speed.

This is in line with the (3D) Rigidbody documentation here: http://docs.unity3d.com/Documentation/ScriptReference/Rigidbody-velocity.html where setting the velocity directly is generally discouraged, but jumping is noted as a common exception.

Comment
Add comment · Show 1 · 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 Tomasz Kempa · Apr 29, 2014 at 02:32 PM 0
Share

Everything perfect explained! Jenesis - well done, thank you so much.

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

21 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Movement FPS Independent, how to? 1 Answer

Rigid Body Wait 1 Answer

how to disable instantiating projectile for the moment when the player jumps and hits the space bar to fire? 2 Answers

Whats the script for basic Character movement? 2 Answers

Movement/Jump help 1 Answer


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