-
단순 사용 요약
기존 회전 상태와 상관 없이 지정한 각도로 회전된 상태를 만들기.
transform.rotation = Quaternion.Euler(0, 50, 0);
기존 회전값에서 추가로 회전할 각도를 인자로 받아 회전 만들기.
transform.Rotate(new Vector3(0, 50, 0));
Euler angle
Euler angle은 친숙한 좌표계로 x,y,z축을 기준으로 0~360도만큼 회전시키것이다.
Euler angle: Yaw, Pitch, Roll
사용하기 편하긴 하지만 Euler angle은 Gimbal lock이라는 문제점이 있다.
오일러 회전 값 얻어 오기
Debug.Log("Angle :" + transform.eulerAngles)
Quaternion
쿼터니언, 사원수, 해밀턴 수라 불린다.
복소수를 확장해서 만든 수 체계다.
q = Quaternion.identity; //초기값. q1 = Quaternion.Euler(10,20,30); //x축으로 10도, y축으로 20도, z축으로 30도의 회전 값을 가지도록 객체를 회전하라 q2.eulerAngle = new Vector3(10,20,30); //기타 함수들 Quaternion.LookRotation Quaternion.Angle Quaternion.Slerp Quaternion.FromToRotation
Transform
Transform.Rotation은 GameObject의 절대적인 회전 각도다.
transform.Rotation = Quaternion.Euler(x, y, z); ///EulerAngle을 Quaternion으로 변환해준다.
Transform.localRotation
부모가 있을 경우 부모를 기준으로 상대적인 회전 각도를 나타낸다. 부모가 없을 경우에는 Transform.Rotation과 동일하다
Transform.Rotate
EulerAngle을 넣어서 회전 가능.
GameObject의 절대적인 회전 각도로 회전할 경우에는 Space.World 옵션을 사용하면 된다.// 게임 오브젝트 기준으로 회전 transform.Rotate(new Vector3(10f, 20f, 30f) * Time.deltaTime); // 절대 좌표 기준으로 회전 transform.Rotate(new Vector3(10f, 20f, 30f) * Time.deltaTime, Space.World);
Transform.RotateAround
지구가 태양 주위를 공전하는 것 처럼 특정 좌표를 기준으로 회전할 경우 사용.
'Unity' 카테고리의 다른 글
Unity Ui Mask (0) 2021.03.28 Unity - Meshes, Materials, Shaders, Textures (0) 2021.03.27 Unity - 실시간 네트워크 서버 엔진 Nclib(Necial)사용 (0) 2021.03.27 Unity - ProBuilder(UV Edit) (0) 2021.03.27 Unity - 자식 GameObject에 있는 Component얻기 (0) 2021.03.25 Unity - Unity Editor 다중 실행(창 여러개 시행) (0) 2021.03.25 Unity - UI Button (0) 2021.03.25 Unity - Prefabs (1) 2021.03.25