Hi, I’m simply trying to make my player able to double jump. So far I’ve been able to make my player able to jump once until it’s grounded again; then I tried to add a jump counter. However Unity gives me an error message on jumpCount +1;
Does anyone know what I’ve done wrong and how to fix this?
public float moveSpeed = 10f;
public float jumpForce = 50f;
int jumpCount = 1;
bool grounded = false;
void Update ()
{
//Jumping
if(jumpCount > 3 || grounded && Input.GetKeyDown(KeyCode.UpArrow))
{
rigidbody2D.AddForce(new Vector2(0,jumpForce));
grounded = false;
jumpCount + 1;
}
}
Komak57
4
Usually, when jumping, you would want to zero out vertical velocity before adding force to counter any gravity. Next, you have 2 scenarios you want to watch for. Grounded & jumping, Airborn & jumping & candoublejump. So you want something like
if (jumpkeydown) {
if (grounded) {
rigidbody2D.velocity.y = 0;
rigidbody2D.AddForce(new Vector2(0, jumpForce));
candobulejump = true;
} else {
if (candoublejump) {
candoublejump = false;
rigidbody2D.velocity.y = 0;
rigidbody2D.AddForce(new Vector2(0, jumpForce));
}
}
values and descriptions may vary.
Josh707
2
jumpCount > 3 || grounded
I think you mean less than, every time you jump the counter goes up, once it’s over 3 you can jump continuously. The error is also because you aren’t assigning that calculation to a variable, unlike Python you can’t just write ‘1+1’ and it will print the result. It will have to be ‘jumpCount = jumpCount + 1;’, or just += 1 or better yet jumpCount++.
JayOhhh
3
You should try assigning jump count the +1 value. As you have it right now your variable is not being assigned your +1 value.
jumpCount = jumpCount + 1;