Deff_Dev
[Unity/C#] Quaternion.LookRotation() 본문
Quaternion.LookRotation(Vector3 forward, Vector3 upwards = Vector3.up)
forward 방향으로 회전하는 Quaternion 값을 반환한다.
여기서 upwards는 기본 값으로 Vector3.up이 사용되고 회전할 오브젝트의 y축이 바라보는 방향을 얘기한다.
위 사진처럼 upwords를 vector3.right로 설정한다면 y축이 오른쪽을 바라보도록 오브젝트를 회전시킨다.
LookAt() 함수와 다른 점은 뭘까 ?
- LookAt() 함수는 회전하기 위해 타겟의 정보가 필요하고 Quaternion.LookRotation() 함수는 타겟 정보가 없어도 회전하고 싶은 방향 값을 알고 있다면 회전을 할 수있다.
Quaternion.LookRotation()이용한 예제
도끼를 사용해 나무를 베었을 때, 나무 자원이 생성되는 기능을 만든다고 해보자.
LookRotation함수를 이용해 회전 값을 주지 않았을 때는 위와 같이 나무가 도끼로 벤 방향이 아닌 엉뚱한 방향에서 생성되게된다.
LookRotation 함수를 이용하여 회전을 시켜주게 된다면 위와 같이 자연스럽게 나무가 등장하게된다.
Instantiate(woodPrefab, hitPoint + Vector3.up, Quaternion.LookRotation(hitNormal));
※ hitPoint: Raycast가 나무에 맞은 지점, hitNormal: Raycast가 나무에 맞은 지점에서 바깥쪽으로 수직인 법선 벡터
여기서 upwards를 vector3.right로 설정한다면 어떻게 될까 ?
Instantiate(woodPrefab, hitPoint + Vector3.up, Quaternion.LookRotation(hitNormal, Vector3.right));
나무 자원 오브젝트의 y축이 오른쪽을 바라보도록 회전하게 된다.
'Unity(유니티) > 유니티 공부' 카테고리의 다른 글
[Unity/C#] 법선 벡터 (0) | 2024.05.29 |
---|---|
[Unity/C#] Generic Singleton (제네릭 싱글톤) (0) | 2024.05.28 |
[Unity/C#] SOLID 원칙 (0) | 2024.05.24 |
[Unity/C#] UnityEngine.Pool를 이용한 오브젝트 풀링 (0) | 2024.05.23 |
[Unity/C#] Generic 다운캐스팅 (0) | 2024.05.20 |