skyf의 게임 개발기

[개발] 2021.05.27(목) - 쿼터니언 사용법 본문

Unity/Unity 개발 일지

[개발] 2021.05.27(목) - 쿼터니언 사용법

skyf7604 2021. 5. 28. 00:04

        var q1 = Quaternion.Euler(0, -90, 0);
        var q2 = Quaternion.Euler(45, 0, 0);
        Debug.Log("q1 : " + q1.eulerAngles);
        Debug.Log("q2 : " + q2.eulerAngles);

        var r1 = q1 * q2;
        var r2 = q2 * q1;

        Debug.Log("q1 * q2 : " + r1.eulerAngles);
        Debug.Log("q2 * q1 : " + r2.eulerAngles);


        //정리
        //앞쪽에 곱해주는 쿼터니언이 그 뒤쪽의 쿼터니언의 월드좌표 기준으로 회전이 되는 쿼터니언이 된다.

        //가령, (20,30,20)인 회전을 월드기준 (0,90,0)으로 돌려주고 싶다면, (0,90,0) * (20,30,20)이 된다.
        

        //순서대로 곱하는 경우 앞쪽까지의 쿼터니언이 기준이 된다.

        //가령, (20,30,20)이 회전된 기준에서의 x축으로 20도를 회전해주고 싶다면, (20,30,20) * (20,0,0)이 된다.