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/

 

Unity Chapter 5-3. C# 프로그래밍 [중급] (1/2) : 회전과 쿼터니언

인프런에 있는 이제민님의 레트로의 유니티 C# 게임 프로그래밍 에센스 강의를 듣고 정리한 필기입니다. 😀 🌜 [레트로의 유니티 C# 게임 프로그래밍 에센스] 강의 들으러 가기!

ansohxxn.github.io