///////////////////////////////////////////////////////////////// // Takes player input ///////////////////////////////////////////////////////////////// public void PlayerInput() { // EXIT if (Input.GetButtonDown("Exit")) { Application.Quit(); } // CAMERA if (Input.GetAxis("Mouse X") != 0.0f || Input.GetAxis("Mouse Y") != 0.0f) { MoveCamera(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y")); } // MOVEMENT switch (playerScript.GetMovementState()) { case MovementState.STANDING: // Player falls if (!playerScript.CanJump()) { playerScript.SetMovementState(MovementState.FALLING); } // Player crouchs else if (Input.GetButtonDown("Crouch")) { playerScript.SetMovementState(MovementState.CROUCHING); } // If player inputs movement else if (Input.GetAxis("Horizontal") != 0.0f || Input.GetAxis("Vertical") != 0.0f) { playerScript.SetMovementState(MovementState.WALKING); } // Player jumps else if (Input.GetButtonDown("Jump")) { playerScript.Jump(); } break; case MovementState.CROUCHING: // Player falls if (!playerScript.CanJump()) { playerScript.SetMovementState(MovementState.FALLING); } // Player stands up else if (Input.GetButtonDown("Crouch")) { playerScript.SetMovementState(MovementState.STANDING); } // If player inputs movement else if (Input.GetAxis("Horizontal") != 0.0f || Input.GetAxis("Vertical") != 0.0f) { playerScript.SetMovementState(MovementState.SNEAKING); } break; case MovementState.SNEAKING: // Player falls if (!playerScript.CanJump()) { playerScript.SetMovementState(MovementState.FALLING); } // Player stands up else if (Input.GetButtonDown("Crouch")) { playerScript.SetMovementState(MovementState.WALKING); } // Player stops moving else if (Input.GetAxis("Horizontal") == 0.0f && Input.GetAxis("Vertical") == 0.0f) { playerScript.SetMovementState(MovementState.CROUCHING); } // Player moves else { playerScript.Move(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); } break; case MovementState.WALKING: // Player falls if (!playerScript.CanJump()) { playerScript.SetMovementState(MovementState.FALLING); } // Player crouchs else if (Input.GetButtonDown("Crouch")) { playerScript.SetMovementState(MovementState.SNEAKING); } // Player jumps else if (Input.GetButtonDown("Jump")) { playerScript.Jump(); } // Player runs else if (Input.GetButton("Sprint") || Input.GetAxis("Sprint") == 1) { playerScript.SetMovementState(MovementState.RUNNING); } // Player stops moving else if (Input.GetAxis("Horizontal") == 0.0f && Input.GetAxis("Vertical") == 0.0f) { playerScript.SetMovementState(MovementState.STANDING); } // Player moves else { playerScript.Move(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); } break; case MovementState.RUNNING: // Player falls if (!playerScript.CanJump()) { playerScript.SetMovementState(MovementState.FALLING); } // Player slides else if (Input.GetButton("Crouch") && playerScript.CanSlide()) { playerScript.SetMovementState(MovementState.SLIDING); } // Player jumps else if (Input.GetButtonDown("Jump")) { playerScript.Jump(); } // Player runs else if (!Input.GetButton("Sprint") && Input.GetAxis("Sprint") != 1) { playerScript.SetMovementState(MovementState.WALKING); } // Player stops moving else if (Input.GetAxis("Horizontal") == 0.0f && Input.GetAxis("Vertical") == 0.0f) { playerScript.SetMovementState(MovementState.STANDING); } // Player moves else { playerScript.Move(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); } break; case MovementState.JUMPING: case MovementState.FALLING: // Player lands if (playerScript.CanJump()) { playerScript.SetMovementState(MovementState.STANDING); } // If player inputs movement if (Input.GetAxis("Horizontal") != 0.0f || Input.GetAxis("Vertical") != 0.0f) { // Pass input axis into move function playerScript.Move(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); } break; case MovementState.CLIMBING: if (playerScript.GetStatePhase() == StatePhase.END) { // Player on ground if (playerScript.CanJump()) { playerScript.SetMovementState(MovementState.STANDING); } // Player jumps else if (Input.GetButtonDown("Jump")) { playerScript.Jump(); } // Player moves else { playerScript.Move(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); } } break; default: break; } // FOR TESTING PURPOSES ONLY! if (Input.GetKeyDown("1")) { playerScript.SetMovementState(MovementState.VAULTING); } if (Input.GetKeyDown("2")) { playerScript.SetMovementState(MovementState.SLIDING); } if (Input.GetKeyDown("3")) { playerScript.SetMovementState(MovementState.MANTLING); } if (Input.GetKeyDown("4")) { playerScript.SetMovementState(MovementState.CLIMBING); } }