Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 nickostan · Dec 21, 2017 at 09:16 PM · rigidbodyjumpjumpingforceforces

Why is it so hard to make a rigidbody jump in the unity engine?

I frequently start Unity projects as a hobbyist and just like to fiddle around. Every time I make a game, 2D or 3D, I find the jump mechanic to be impossibly hard to program.

Currently I'm trying to make a 3D rigidbody jump, but it INSTANTLY reaches height and then slowly falls (doesn't even accelerate under gravity)... see the gif below. EDIT** Can't seem to upload an image in this forum anymore... see link below.

I've tried using transform.Translate... directly setting rigidbody.velocity... doing rb.AddForce with different forcemodes and everything (except the translate function, but I don't want to use this) causes the same thing to happen. I've had this problem every time I make a game and can never figure it out.

I find it a bit ridiculous that over the course of 3 years of me making games there still is no easy fix for this in this engine... does anyone know what is causing this? Code and image below

IMAGE OF WEIRD UNITY JUMPING

 void Update()
     {
 
         //Movement input
         float strafe = Input.GetAxis("Horizontal");
         float movement = Input.GetAxis("Vertical");
 
         playerRigidbody.velocity = (transform.forward * movement + transform.right * strafe).normalized * movementSpeed;
 
         //Rotation
         if (Input.GetMouseButton(1))
         {
             float h = mouseSensitivity * Input.GetAxis("Mouse X");
             transform.Rotate(0, h, 0);
         }
 
         //Jump
         if (Input.GetKeyDown(KeyCode.Space) && GroundCheck())
         {
             playerRigidbody.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
         }
 
     }


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
3
Best Answer

Answer by Buckslice · Dec 21, 2017 at 09:43 PM

When you set the velocity directly each frame you are overriding and forgetting about the y velocity, which removes the acceleration from gravity and makes the upward jump force only lasts one frame. Replace the code on line 8 with this.

 float yVel = playerRigidbody.velocity.y;
 Vector3 newVel = transform.forward * movement + transform.right * strafe;
 newVel = newVel.normalized * movementSpeed;
 newVel.y = yVel;
 playerRigidbody.velocity = newVel;
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 nickostan · Dec 21, 2017 at 09:56 PM 0
Share

Thank you sir, you are wonderful. Added some gravity and it works nicely now.

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

97 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 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 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 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 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

How do I make my character jump? 1 Answer

Jump for rigidbody 1 Answer

How to make a object jump constantly at y and move to the next position to z (perfectly) 0 Answers

Adding more forces vs adding sum of forces 2 Answers

Jump without character controller?? 2 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