Unity
유니티 카메라 360 회전
기억해조
2023. 9. 7. 18:58
카메라 360 회전 시,
X,Y값을 한번에 Rotate()함수 에 넣어야 똑바로 회전함
> 똑바로회전:
좌우 드래그시, 좌우로 회전되고/ 위아래 드래그시 위아래로 회전됨
public float rotationSpeed = 1;
private float x = 0;
private float y = 0;
void Update()
{
if (Input.GetMouseButton(0))
{
transform.Rotate(new Vector3(Input.GetAxis("Mouse Y") * rotationSpeed, -Input.GetAxis("Mouse X") * rotationSpeed, 0));
x = transform.rotation.eulerAngles.x;
y = transform.rotation.eulerAngles.y;
transform.rotation = Quaternion.Euler(x, y, 0);
}
}
-
처음에는 X,Y회전을 각각 주니까, 위아래 회전상태에서 좌우로 드래그하면 대각선으로 도는 문제가 있었다..
//문제의 회전
transform.Rotate(Vector3.up, rotationY);
transform.Rotate(Vector3.right, rotationX);
이전에도 이런문제가 있었는데 회전은 너무 헷갈린다..
-
Quaternion
1. 행렬 계산
1-1. 두개의 쿼터니언을 더하려면 곱해야한다
1-2. 현재 상태에서 얼만큼 회전시키고 싶으면 Rotate()사용
--> 각각 Rotate() 하지말고 한번에 Rotate()하기
https://ansohxxn.github.io/unity%20lesson%201/chapter5-3/