반응형
Quaternion.LookRotation
public static Quaternion LookRotation(Vector3 forward, Vector3 upwards = Vector3.up);
매개변수
forward- 회전시킬 방향 벡터
upwards - 원하는 방향 벡터를 바라보고 있을 때의 "위"를 지정, Vector3.up이 기본값으로 사용된다.
반환
주어진 방향 벡터를 바라보는 Quaternion
upwards가 필요한 이유
Quaternion.LookRotation은 주어진 forward방향으로 회전을 한다. 회전을 하는데 있어서 여러가지 방향 중 하나를 선택해야 하는데 이에 기준이 필요하다. upwards가 이를 결정해준다.
예를 들어 upwards 매개변수를 기본 값 Vector3.up으로 설정하게 되면 만들어진 회전은 항상 y축을 따라 향하게 된다. upwards가 Vector3.right라면 물체의 위쪽 방향이 x축이 되면서 물체가 yz평면을 기준으로 x축 방향으로 회전하게 된다.
Unity 코드 예시
Quaternion targetRotation = Quaternion.LookRotation(targetDirection, transform.up);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, 0.2f);
transform.up이므로 y축을 기준으로 targetDirection 목표 방향을 통해서 회전 각도를 구하고 이를 Quaternion targetRotation으로 반환한다. 그리고 이 targetRotation을 이용해서 slerp을 통하여 현재 object를 회전 시킨다.
Slerp에 대해 알아보러 가기
반응형
'유니티 공부 > Unity' 카테고리의 다른 글
Unity - ScriptableObject (0) | 2023.05.10 |
---|---|
Unity - Transform.LookAt() (0) | 2023.05.09 |
Unity - 오일러(Euler) vs 쿼터니언(Quaternion) (2) | 2023.05.08 |
Unity- Quaternion.Slerp() (0) | 2023.05.08 |
Unity- Vector3.ProjectOnPlane() (2) | 2023.05.08 |
댓글