In addition to what 0x01AA says, indent your code: it becomes a whole load easier to see what is wrong if you can visually match up open brackets, close brackets, and the code blocks they enclose:
void Jump()
{
if (Input.GetButtonDown("Jump") )
{
if(!isJumping)
{
rig.AddForce(new Vector2(0f, JumpForce), ForceMode2D,Impulse);
doubleJump = true;
}
else
{
if(doubleJump)
{
rig.AddForce(new Vector2(0f, JumpForce), ForceMode2D,Impulse);
doubleJump = false;
}
}
}
}
Is difficult to work with, but indented correctly:
void Jump()
{
if (Input.GetButtonDown("Jump") )
{
if(!isJumping)
{
rig.AddForce(new Vector2(0f, JumpForce), ForceMode2D,Impulse);
doubleJump = true;
}
else
{
if(doubleJump)
{
rig.AddForce(new Vector2(0f, JumpForce), ForceMode2D,Impulse);
doubleJump = false;
}
}
}
}
It is a lot more readable.
It's also often considered better to combine the
else if
into one line:
void Jump()
{
if (Input.GetButtonDown("Jump") )
{
if(!isJumping)
{
rig.AddForce(new Vector2(0f, JumpForce), ForceMode2D,Impulse);
doubleJump = true;
}
else if(doubleJump)
{
rig.AddForce(new Vector2(0f, JumpForce), ForceMode2D,Impulse);
doubleJump = false;
}
}
}
Again, it improves readbillity.