When: 1학년 4월 26일
How:
2D에서는 보통 z축 회전만 사용해서 알지 못하다가, 최근 3D 강의를 보고 따라 만드는 숙제가 생겨 해보다가 알게된 사실입니다.
오브젝트의 회전을 돌려보다가, 뒤를 보고 있는 오브젝트를 오른쪽 아래 대각선을 보게 만들기도 했습니다.
먼저 x축을 돌려서 아래를 보게 만든 후, Global에서 z축이 된 y축을 돌렸는데 이상하게 Global의 y축을 기준으로 돌아갔습니다.
잠시 '이거 돌릴 때, Local로 돌리는 게 아니었나?' 하며 이번엔 z축을 돌렸는데, 이번엔 Local을 기준으로 z축이 돌아갔습니다.
잠시 정신을 놓을 뻔했던 저는 30분 동안 주구장창 회전만 하다가 GPT한테 물어보았고, 회전 순서에 대해 듣게 되었습니다.
Why:
설명을 듣고 보니, 무언가를 축으로 돌릴 때 무엇을 먼저 돌리느냐에 따라서 물체가 바라보는 방향이 달라지고,
무엇을 먼저 돌렸는지에 대한 값을 또 넣지 않기 위해서는 회전을 할 축의 순서가 필요하다는 사실을 알게 되었습니다.
(GPT는 순서를 반대로 말해서 갈리긴 했지만)
오브젝트를 직접 돌려보며 무엇이 1순위로 계산되는 축인지 찾다가, Y - X - Z 축 순서로 회전이 된다는 것을 알게 되었습니다.
그러므로 제가 유니티에서 무언가를 회전시킬 때는 Y - X - Z 이 순서대로 회전시키지 않으면 원하는 대로 돌아가지 않는다는 것을 알게 되었습니다.
What: 오브젝트는 Y → X → Z 축 순서로 계산하여 회전이 됩니다. 유니티에서 회전시킬 때는 이 순서대로 하도록 합시다.
'UnityEngine' 카테고리의 다른 글
| [Unity] 코드에서 GameObject 가져오기 (0) | 2025.05.06 |
|---|---|
| [Unity] OnTrigger, OnCollision 메서드 실행 (0) | 2025.05.02 |
| [Unity] 여러가지 이동 방식 (0) | 2025.05.02 |
| [Unity] Monobehaviour 스크립트의 구동 (0) | 2025.04.28 |
| [Unity] 오브젝트 코드로 회전시키기 (0) | 2025.04.27 |