Unity에서는 Transform 구성 요소를 사용하여 게임 개체를 회전할 수 있습니다.
1. 변신. 회전 ()
Transform.Rotate() 함수를 사용하여 게임 개체를 회전할 수 있습니다. 이 함수는 세 개의 인수를 사용합니다.
public void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self);
- eulerAngles: 회전할 방향 벡터.
- relativeTo: 회전할 참조 프레임을 지정합니다. 생략하면 Space.Self로 설정됩니다.
// 예시: 오브젝트를 x축으로 30도 회전
transform.Rotate(new Vector3(30, 0, 0), Space.Self);
2. 변신. 회전
Transform.rotation 속성을 사용하여 게임 오브젝트의 회전을 직접 변경할 수 있습니다. 이 속성은 쿼터니언 데이터 유형을 사용합니다.
// 예시: 오브젝트를 y축으로 45도 회전
transform.rotation = Quaternion.Euler(0, 45, 0);
3. 강체 구성 요소
게임 개체에 rigidbody 구성 요소가 있는 경우 rigidbody 구성 요소의 AddTorque() 함수를 사용하여 회전력을 적용할 수 있습니다.
public void AddTorque(Vector3 torque, ForceMode mode = ForceMode.Force);
- 토크: 토크 벡터.
- 모드: 토크의 적용 모드를 나타냅니다. 생략하면 ForceMode.Force로 설정됩니다.
// 예시: 회전력을 y축으로 100만큼 가할 때
rigidbody.AddTorque(new Vector3(0, 100, 0), ForceMode.Force);
위와 같은 방식으로 Unity에서 게임 오브젝트를 회전할 수 있습니다.
4. 쿼터니언과 오일러 각
쿼터니언과 오일러 각도는 회전 값을 표현하는 두 가지 방법입니다.
쿼터니언은 회전 값을 4차원 벡터로 표현합니다. Unity에서는 Quaternion.Euler() 함수를 사용하여 오일러 각도를 쿼터니언으로 변환할 수 있습니다.
// 예시: Euler Angle을 Quaternion으로 변환
Quaternion rotation = Quaternion.Euler(30, 45, 60);
오일러 각도는 x, y 및 z 축에 대한 회전을 나타냅니다. Transform.rotation에서 오일러 각도는 회전 값을 표현하는 데 사용됩니다.
// 예시: 오브젝트를 x, y, z 축을 기준으로 회전시키기
transform.rotation = Quaternion.Euler(30, 45, 60);
5. 회전 순서
오일러 각으로 회전 값을 표현하면 회전 순서에 따라 다른 결과가 나타날 수 있습니다. Unity를 사용하면 회전 순서를 설정하여 회전 순서를 변경할 수 있습니다.
Transform.rotation의 회전 순서는 Rotation Order 속성을 사용하여 설정할 수 있습니다.
// 예시: x, y, z 순서로 회전시키기
transform.rotation = Quaternion.Euler(30, 45, 60);
transform.rotation = Quaternion.Euler(60, 45, 30); // 같은 Euler Angle이지만 결과가 다름
회전 순서에 따라 결과가 달라지므로 쿼터니언을 사용하여 회전 값을 표현하는 것이 좋습니다.