void Update() { float forward = Input.GetAxis("Vertical"); float strafe = Input.GetAxis("Horizontal"); float lookX = Input.GetAxis("Mouse X"); float lookY = Input.GetAxis("Mouse Y"); bool fire = Input.GetButtonDown("Fire1"); bool unlock = Input.GetButtonDown("Cancel"); bool reload = Input.GetButtonDown("Reload"); bool jump = Input.GetButtonDown("Jump"); if (Cursor.lockState != CursorLockMode.Locked) { if (fire && !keepCursorUnlocked) { Cursor.visible = false; Cursor.lockState = CursorLockMode.Locked; } else { return; } } cameraRotation = Mathf.Clamp(cameraRotation - lookY, -89, 89); playerCamera.transform.localRotation = Quaternion.AngleAxis(cameraRotation, Vector3.right); movement.Move(new Vector2(strafe, forward)); movement.AddToYaw(lookX); if (jump) { movement.Jump(); } if (fire) { gun.Fire(); } if (reload) { gun.Reload(); } if (unlock) { Cursor.visible = true; Cursor.lockState = CursorLockMode.None; } }