본문 바로가기
유니티 공부/Unity

Unity - Quaternion.LookRotation()

by 코딩하는 돼징 2023. 5. 9.
반응형

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- Quaternion.Slerp()

Lerp에 대해 알아보러 가기 유니티 - Mathf.Lerp() 1. Lerp(Linear Interpolation) 두 값을 선형 보간(linear interpolation)하여 새로운 값을 계산 매개변수 a : 시작 값 b : 종료 값 t : a와 b 실수 값 사이의 보간 비율

code-piggy.tistory.com

 

반응형

'유니티 공부 > 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

댓글