private void Update() { CalculateVelocity(); HandleWallSliding(); if (Input.GetKeyDown(KeyCode.I) && !controller.collisions.knockedBack) { controller.Knockback(); } if (controller.collisions.knockedBack && !controller.collisions.oldKnockBack) { velocity.x = -controller.collisions.faceDir * jumpBack.x; velocity.y = jumpBack.y; } controller.Move(velocity * Time.deltaTime, directionalInput); if (controller.collisions.below && controller.collisions.knockedBack && controller.collisions.oldKnockBack) { velocity.x = 0; controller.collisions.knockedBack = false; } if (controller.collisions.above || controller.collisions.below) { if (controller.collisions.slidingDownMaxSlope) { velocity.y += controller.collisions.slopeNormal.y * -gravity * Time.deltaTime; } else { velocity.y = 0; } } }