private void Update() { transform.Rotate(Vector3.up * Input.GetAxis("Mouse X") * Time.deltaTime * mouseSensitivityX); verticalLookRotation += Input.GetAxis("Mouse Y") * Time.deltaTime * mouseSensitivityY; verticalLookRotation = Mathf.Clamp(verticalLookRotation, -60f, 60f); cameraT.localEulerAngles = Vector3.left * verticalLookRotation; Vector3 moveDir = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")).normalized; Vector3 targetMoveAmount = moveDir * walkSpeed; moveAmount = Vector3.SmoothDamp(moveAmount, targetMoveAmount, ref smoothMoveVelocity, 0.15f); if (Input.GetButtonDown("Jump")) { body.GetBody().AddForce(transform.up * jumpForce); if (grounded) { shouldJump = true; body.GetBody().AddForce(transform.up * jumpForce); } else { shouldJump = false; } } grounded = false; Ray ray = new Ray(transform.position, -transform.up); RaycastHit hit; if (Physics.Raycast(ray, out hit, 1 + 0.1f, groundedMask)) { shouldJump = true; grounded = true; } }