public class PlayerMovement : MonoBehaviour
private CharacterController characterController;
private float verticalSpeed;
public float jumpHeight = 3.0f;
public float gravity = -9.8f;
characterController = GetComponent<CharacterController>();
if (Input.GetButtonDown("Jump") && characterController.isGrounded)
if (Input.GetKeyDown(KeyCode.C))
void HandleMovementInput()
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
Vector3 moveDirection = new Vector3(horizontalInput, 0, verticalInput);
moveDirection = transform.TransformDirection(moveDirection);
characterController.Move(moveDirection * Time.deltaTime);
verticalSpeed = Mathf.Sqrt(jumpHeight * -2.0f * gravity);
Debug.Log("Player is sitting");
if (!characterController.isGrounded)
verticalSpeed += gravity * Time.deltaTime;
verticalSpeed = -gravity * Time.deltaTime;
void ApplyVerticalMovement()
Vector3 moveDirection = new Vector3(0, verticalSpeed, 0);
characterController.Move(moveDirection * Time.deltaTime);
if (Input.GetButtonDown("Jump") && characterController.isGrounded)
if (Input.GetKeyDown(KeyCode.C))