문제발생
1번 코드를 2번 코드로 대체 가능하다고 생각이 들어서 바꾸어 봤는데 다른 결과를 초래함.
1번 코드
mouseX += Inupt.GetAxis("Mouse X");
mouseY -= Input.GetAxis("Mouse Y");
// 플레이어 좌우 회전
transform.rotation = Quaternion.Euler(0,mouseX,0);
// 카메라 상하좌우 회전
camera.transform.rotation = Quaternion.Euler(mouseY,MouseX,0);
2번 코드
mouseX = Input.GetAxis("Mouse X");
mouseY = Input.GetAxis("Mouse Y");
// 캐릭터 좌우 회전
transform.Rotate(Vector3.up * mouseX);
// 카메라 상하좌우 회전
camera.transform.Rotate(-mouseY,mouseX,0);
원인
1번 코드는 미리 더한 마우스 회전값 자체를 새로 대입하는 방식이고 2번 코드는 마우스 회전값을 계속 더해주는 방식이다. 방식으로만 보면 차이는 없지만 2번 코드에 존재하는 초기값때문에 문제가 발생했다. 1번 코드에서는 아예 대입을 시켜버리기 때문에 초기값 문제가 발생하지 않았지만 2번 코드는 기존값에 계속 더해주는 코드이기 때문에 초기값에 의해 영향을 받았다