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 Obi02_ · Sep 19, 2017 at 05:47 AM · scripting problemmovementscript.movement scriptscriptingproblem

Smooth jump script?

I'm creating a 2d pixel art game and have been trying to create a smooth jumping script for my character, but it always ends up inconsistent or unrealistic.
So far, this is what I have:

Attached to my groundcheck GameObject is this script:

void OnTriggerEnter2D(Collider2D col) {
if (col.tag == "ground") {
movement.grounded = true; }
}

 void OnTriggerStay2D(Collider2D col)
 {
     if (col.tag == "ground") {
         movement.grounded = true;
     }
 }

 void OnTriggerExit2D(Collider2D col)
 {
     if (col.tag == "ground") {
         movement.grounded = false;
     }
 }  

My groundCheck gameobject is attached to my player, with a boxcollider2d set to trigger that sits just below his feet. With grounded referencing to my grounded bool in my playerControl script.

Part of my PlayerControler script (attached to my character):

if (Input.GetKey (KeyCode.Space) && grounded) {
rb2d.AddForce(Vector2.up * speed);

             control.SetBool ("jump", true); //play jump animation
     
     } else {
         control.SetBool ("jump", false); //stop jump animation
     }

The problem is, jumping is inconsistent, sometimes he will jump high, sometimes he will jump not so high. Also, when consecutively jumping, it gets even worse.
If you have any suggestions or edits to this script, or a whole new way I can approach jumping, that would help me a lot. Thanks!

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

Answer by Merrick20 · Sep 19, 2017 at 09:15 PM

Have you tried using rb2d.velocity instead of AddForce?

Add Force does that it adds force gradually. And since you asked your script to do that while grounded. Once off the ground it stops adding force.

Unity Scripting API

If I were you I would use something like this:

 public float jumpVelocity;
 
 if (isGronded) 
         {
             myBody.velocity += jumpVelocity * Vector2.up;
         }

That way when you press the jump key the velocity of the jump goes stright to the amount you want and you can regulate it whit the jumpVelocity float via Inspector.

Comment
Add comment · 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

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

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

Slime script? 1 Answer

How to I put a speed limit on my character's movement? 1 Answer

The Camera is facing backwards of the Character 1 Answer

Question about moving an object technique 3 Answers

Player Sliding without any Input 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