✅ Can't stop multi jumping, Please Help
public LayerMask groundLayer;
private bool isGrounded;
public Transform feetPosition;
public float groundCheckCircle;
public float jumpTime = 0.35f;
public float jumpTimeCounter;
private bool isJumping;
// Start is called before the first frame update
void Start()
{
} // Update is called once per frame void Update() { input = Input.GetAxisRaw("Horizontal"); if (input < 0) { spriteRenderer.flipX = true; } else if (input > 0) { spriteRenderer.flipX = false; } isGrounded = Physics2D.OverlapCircle(feetPosition.position, groundCheckCircle, groundLayer); if (isGrounded == true && Input.GetButtonDown("Jump")) { jumpTimeCounter = jumpTime; playerRb.velocity = Vector2.up * jumpForce; } isJumping = true; if (Input.GetButton ("Jump") && isJumping == true) { if(jumpTimeCounter > 0) { playerRb.velocity = Vector2.up * jumpForce; jumpTimeCounter -= Time.deltaTime; } else { isJumping = false; } } if (Input.GetButtonUp("Jump")) { isJumping = false; }
} // Update is called once per frame void Update() { input = Input.GetAxisRaw("Horizontal"); if (input < 0) { spriteRenderer.flipX = true; } else if (input > 0) { spriteRenderer.flipX = false; } isGrounded = Physics2D.OverlapCircle(feetPosition.position, groundCheckCircle, groundLayer); if (isGrounded == true && Input.GetButtonDown("Jump")) { jumpTimeCounter = jumpTime; playerRb.velocity = Vector2.up * jumpForce; } isJumping = true; if (Input.GetButton ("Jump") && isJumping == true) { if(jumpTimeCounter > 0) { playerRb.velocity = Vector2.up * jumpForce; jumpTimeCounter -= Time.deltaTime; } else { isJumping = false; } } if (Input.GetButtonUp("Jump")) { isJumping = false; }
10 Replies
You'll probably get more traction on this in #game-dev , but why are you always setting
isJumping = true
in your Update
method?
What is the intended purpose of jumpTime
and jumpTimeCounter
?
Setting isJumping = false
when you let go of the jump button likely isn't doing anything meaningful since you set it to true
during every update anyways.jumpTime and jumpTimeCounter are the reset time in which the jump key can be used again and okay thanks I'll have a look👍 😃
With the way you've written this, it looks like it'll let you continually jump so long as you're holding space, at least until
jumpTimeCounter
runs out.Sorry if I suck at explaining this haha, just started today 🙂
Currently I can't hold it forever but I can keep spamming it for jumps
I didn't say forever, I said you can hold it until
jumpTimeCounter
runs out. Spamming it works longer because you only decrement jumpTimeCounter
on frames where the jump button is pressed.Oh crap yeah I get what you mean
Yeah thats 100% whats happening
If the intent is to only let people jump when they are grounded, you probably need to manage your player state better.
isJumping
could be entirely removed and nothing would change because you've hardcoded it to be true
during every frame.That's true haha, been following an online tutorial for this but you've helped explain much better 👍 thank you very much for the help
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Use the /close command to mark a forum thread as answered