void FixedUpdate() { if (endGame || paused) { return; } GetComponent <Rigidbody2D>().AddForce(new Vector2(((input.x * speed) - GetComponent <Rigidbody2D>().velocity.x) * (groundState.onGround() ? accel : airAccel), 0)); GetComponent <Rigidbody2D>().velocity = new Vector2((input.x == 0 && groundState.onGround()) ? 0 : GetComponent <Rigidbody2D>().velocity.x, (input.y == 1 && groundState.isTouching()) ? jump : GetComponent <Rigidbody2D>().velocity.y); if (groundState.onWall() && !groundState.onGround() && input.y == 1) { GetComponent <Rigidbody2D>().velocity = new Vector2(-groundState.getWallDir() * speed * 0.75f, GetComponent <Rigidbody2D>().velocity.y); } input.y = 0; }