void Jumping() { if (mov2D.Grounded) { jump = false; doubleJump = false; } if (!doubleJump && (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(1) || Input.GetKeyDown(KeyCode.X))) { Vector3 jumpDir = GetJumpDir(); CheckRollIntent(jumpDir.y); Vector3 residualVelocity = GetResidualVelocity(jumpDir); if (mov2D.Grounded) { Jump(jumpDir, residualVelocity); } else if (!doubleJump) { DoubleJump(jumpDir, residualVelocity); } else if (mov2D.WallLean != 0) { doubleJump = true; //mov2D.SetVel(jumpDir * JUMP_FORCE); if (!mov2D.GetRollIntent()) { mov2D.SetVel((jumpDir + Vector3.up + Vector3.right * mov2D.WallLean).normalized * JUMP_FORCE); } else { mov2D.SetVel((jumpDir + Vector3.right * mov2D.WallLean).normalized * JUMP_FORCE); } } } }