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 BobMen645 · Jul 20, 2020 at 01:31 PM · c#2d game2d-physics

Can Someone Please help me my 2D jump is broken i can infinite jump i tried to fix it now i can't jump!

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class Movement : MonoBehaviour {

 public float speed;
 public float jump;

 private float movement;
 private Rigidbody2D rb;
 private bool isGrounded;
 private bool canJump;

 public Transform groundCheck;
 public float groundCheckRadius;


 public LayerMask whatIsGround;

 // Start is called before the first frame update
 void Start()
 {
     rb = GetComponent<Rigidbody2D>(); 
 }

 // Update is called once per frame
 void Update()
 {
     CheckSurroundings();
     movement = Input.GetAxis("Horizontal");

     rb.velocity = new Vector2(movement * speed, rb.velocity.y);

     if (Input.GetButtonDown("Jump"))
     {
         if (canJump)
         {
             rb.AddForce(new Vector2(rb.velocity.x, jump));
         }
     }
 }

 private void FixedUpdate()
 {
     CheckSurroundings();
 }

 private void CheckSurroundings()
 {
     isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround); 
 }

 private void OnDrawGizmos()
 {
     Gizmos.DrawWireSphere(groundCheck.position, groundCheckRadius);  
 }

}

Comment
Add comment · Show 1
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 unity_ek98vnTRplGj8Q · Jul 20, 2020 at 02:48 PM 0
Share

"canJump" is not set to true or false anywhere, did you mean to use "isGrounded" instead?

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by b4guw1x · Jul 20, 2020 at 01:58 PM

Hİ, i have got another algorithm for jump so i think you can try it

      private Rigidbody2D playerRB;    
     public float jumpSpeed;
     void Start()
         {
     
             playerRB = GetComponent<Rigidbody2D>();
             footCollider = GetComponent<BoxCollider2D>();
             
         }
     
     void FixedUpdate(){
              if (Input.GetKey(KeyCode.Space))
                 {
                     Jump();
                 }
     }
         void Jump()
         {
                 //multi jump skill disabled.
                 if (!footCollider.IsTouchingLayers(LayerMask.GetMask("Ground"))) return;
     
                 playerRB.AddForce(new Vector2(0f, jumpSpeed));
                 PlayerAnimator.SetInteger("State", 3);
             
             
         }

So i think you can try it

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

Answer by jmhoubre · Jul 20, 2020 at 09:39 PM

Hello,

it seems to me that canJump is never true in your code. Edit line 7:

 private bool canJump = true;



Edit lines 30 to 35:

 {
    if (canJump) {
      float timeBetweenTwoJumps = 2f;
      canJump = false;
      rb.AddForce (new Vector2 (rb.velocity.x, jump));
      while (timeBetweenTwoJumps> 0) {
        timeBetweenTwoJumps -= Time.delta.Time;
      }
      canJump = true;
 }

Good luck (and sorry for any mistakes in English).

Comment
Add comment · Show 9 · 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 BobMen645 · Jul 22, 2020 at 02:59 PM 0
Share

One thing does this code all have to be in the code i wrote or just the first one can you send me the code with $$anonymous$$e on how it should look thanks!

avatar image BobMen645 · Jul 22, 2020 at 03:02 PM 0
Share

would i get rid of this if (Input.GetButtonDown("Jump")) { if (canJump) { rb.AddForce(new Vector2(rb.velocity.x, jump)); } } } private void FixedUpdate() { CheckSurroundings(); } private void CheckSurroundings() { isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround); } private void OnDrawGizmos() { Gizmos.DrawWireSphere(groundCheck.position, groundCheckRadius);
}

avatar image BobMen645 · Jul 22, 2020 at 03:35 PM 0
Share

never $$anonymous$$d i tried your code and now he flies away into the sky how can i fix that

avatar image BobMen645 · Jul 22, 2020 at 03:40 PM 0
Share

i lowered the jump strength to 15 and now i don't fly away but i can't do anything the cube just sits there like it has only just a rigid body...

avatar image unity_ek98vnTRplGj8Q BobMen645 · Jul 22, 2020 at 04:38 PM 0
Share

This code is not correct, don't use a while loop in update like this. Try this instead

 private float timeBetweenJumps = 0;
 
 void Update () {
     CheckSurroundings ();
     movement = Input.GetAxis ("Horizontal");
     rb.velocity = new Vector2 (movement * speed, rb.velocity.y);
 
     //Add a short cooldown between jumps
     if (timeBetweenJumps > 0) {
         timeBetweenJumps -= Time.deltaTime;
     }
 
     //If we have waited for the cooldown and we are on the ground, then we can jump again
     if ((timeBetweenJumps <= 0) && isGrounded) canJump = true;
     else canJump = false; //If we are not grounded, we cannot jump
 
     if (Input.GetButtonDown ("Jump") && canJump) {
         canJump = false;
         timeBetweenJumps = 0.2f;
         rb.AddForce (new Vector2 (rb.velocity.x, jump));
     }
 }
avatar image BobMen645 unity_ek98vnTRplGj8Q · Jul 23, 2020 at 01:47 PM 0
Share

What lines should i type it in??

Show more comments
Show more comments
avatar image
0

Answer by BobMen645 · Jul 24, 2020 at 03:16 PM

There's no errors and I still can't jump!! here's my code!

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class Movement : MonoBehaviour
 {
     private bool canJump = true;
     public float speed;
     public float jump;
     private float timeBetweenJumps = 0;
     private float movement;
     private Rigidbody2D rb;
     private bool isGrounded;
 
     public Transform groundCheck;
     public float groundCheckRadius;
 
 
     public LayerMask whatIsGround;
 
     // Start is called before the first frame update
     void Start()
     {
         rb = GetComponent<Rigidbody2D>(); 
     }
 
     // Update is called once per frame
    
             void Update()
             {
                 CheckSurroundings();
                 movement = Input.GetAxis("Horizontal");
                 rb.velocity = new Vector2(movement * speed, rb.velocity.y);
 
                 //Add a short cooldown between jumps
                 if (timeBetweenJumps > 0)
                 {
                     timeBetweenJumps -= Time.deltaTime;
                 }
 
                 //If we have waited for the cooldown and we are on the ground, then we can jump again
                 if ((timeBetweenJumps <= 0) && isGrounded) canJump = true;
                 else canJump = false; //If we are not grounded, we cannot jump
 
                 if (Input.GetButtonDown("Jump") && canJump)
                 {
                     canJump = false;
                     timeBetweenJumps = 0.2f;
                     rb.AddForce(new Vector2(rb.velocity.x, jump));
                 }
             }
         
     
 
     private void FixedUpdate()
     {
         CheckSurroundings();
     }
 
     private void CheckSurroundings()
     {
         isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround);
     }
 
     private void OnDrawGizmos()
     {
         Gizmos.DrawWireSphere(groundCheck.position, groundCheckRadius);
     }
 }
Comment
Add comment · Show 6 · 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 unity_ek98vnTRplGj8Q · Jul 24, 2020 at 03:54 PM 0
Share

$$anonymous$$ake sure isGrounded is being set to true when you are on the ground. You can set it to public to check

avatar image mzaidan1996 unity_ek98vnTRplGj8Q · Jul 24, 2020 at 04:19 PM 0
Share

I use raycasting to detect if I'm on the floor or not in my 3D game do you suggest me to stick with that?

avatar image unity_ek98vnTRplGj8Q mzaidan1996 · Jul 24, 2020 at 07:48 PM 0
Share

Raycasting is fine depending on your game. OverlapSphere is more expensive but it checks an entire area under the character instead of just a point.

avatar image BobMen645 unity_ek98vnTRplGj8Q · Jul 24, 2020 at 05:27 PM 0
Share

so I should change this line private bool isGrounded; to this public bool isGrounded = true; ??

avatar image mzaidan1996 BobMen645 · Jul 24, 2020 at 06:04 PM 0
Share

I think that would work, what I do is that I use raycasting to detect if im touching the floor or not, I think that works best, but still it has alot of issues, try not using alot of raycasting since it can cause performance drops.

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

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

HOLD THE JUMP BUTTON TO JUMP HIGHER 0 Answers

The player randomly freezes in place while other objects move ingame 1 Answer

Having trouble moving object in opposite direction of player. 1 Answer

How to check if an object hits the ground hard enough then add explosive force around it (2D) 1 Answer

Move game object in opposite direction of player in x & y axis? (2D Game) 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