마우스로 회전하는 1 인칭 카메라를 만들고 싶습니다.
나는 보았다 Input.GetAxis 스크립팅 API 페이지와 내 게시물의 하단에 포함되어있는 샘플 코드를 발견했다. 그것을 시도했을 때, 나는 그것이 원했던 것과 동일한 기본 기능을 가지고 있지만, 특히 마우스를 원으로 움직일 때 카메라를 xz 평면에 평행하게 유지하지 않는다는 것을 깨달았습니다. 잠시 후 카메라가 이상한 각도에 놓이고 플레이어는 완전히 당황했습니다!
카메라 움직임을 제한하는이 코드에 빠른 수정이 있습니까, 아니면 카메라를 회전시키는 더 좋은 방법이 있습니까?
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public float horizontalSpeed = 2.0F;
public float verticalSpeed = 2.0F;
void Update() {
float h = horizontalSpeed * Input.GetAxis("Mouse X");
float v = verticalSpeed * Input.GetAxis("Mouse Y");
transform.Rotate(v, h, 0);
}
}
짐벌 락과 같은 소리가납니다. 오일러 각도를 회전에 사용할 때 발생합니다. 솔루션을 제공하기 위해 몇 가지 테스트를 수행해야합니다. 기본적으로 쿼터니언을 사용해야합니다. 그들은 짐벌 잠금으로 고통받지 않습니다.
—
퍼지 로직
쿼터니언을 사용하여 회전하는 방법은 무엇입니까? transform.rotation = Quaternion.Slerp (-Input.GetAxis ( "Mouse X"), Input.GetAxis ( "Mouse X"), Time.deltaTime * freeLookTurningSpeed);를 시도했습니다. 그러나 그것은 나에게 오류를 주었다.
—
환생
좋아, 나는 시험을했다. 다행히도 짐벌 락이 아닙니다. 솔루션을 답변으로 게시하겠습니다.
—
퍼지 로직