I am rotating an 3D object with camera (as child) and a rigidbody with Mouse and keyboard. I am using the following codesnippet: Code (CSharp): private void Update() { float rh = Input.GetAxisRaw("Mouse X"); float rv = Input.GetAxisRaw("Mouse Y"); float rx = Input.GetAxisRaw("Roll"); rotInput = new Vector3(rv, rh, rx); Thrust(); //Move forward and backward } private void FixedUpdate() { Moving.MoveInput(rotInput); } I can move the 3D object (and the camera) with the mouse, but when I look to the left or to the right, the camera is tilting a little diagonal. I want to rotate with the mouse just like a 6DOF game, but with a rigidbody (not with transform.euler....). Does anyone know a solution so that the camera moves exactly in order with the mouse (without tilting diagonal)? I change the code to: Code (CSharp): void moveWithMouse() { moveCamera(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"), arrowMouseSpeed); } void moveCamera(float horizontal, float verticle, float moveSpeed) { mouseX = horizontal; mouseY = -verticle; rotY += mouseX * moveSpeed; rotX += -mouseY * moveSpeed; roll += Input.GetAxis("Roll"); rotInput = new Vector3(rotY, rotX, roll); Debug.Log("rotInput" + rotInput); } But now it keeps rotating and I can't stop it. I still use a ridigbody. Is there a solution, so the mouse works correct and the camera stop rotating when I stop moving the mouse?