Unity

Unity) Quaternion.LookRotation

Todah 2022. 1. 27. 12:20
반응형

LookRotation() 메서드는 해당 벡터 방향을 바라보는 회전 상태를 반환한다.

 

따라서 LookRotation() 메서드 안에는 상대 좌표를 넣어야한다.

 

Ex)

LookRotation(new Vector3(1, 1, 1)) 의 경우 객체가 원점에 있을 경우에는 월드좌표 (1, 1, 1)을 바라보지만, 원점이 아닌 곳에서는 월드 좌표 (1, 1, 1)을 바라보지 않는다.

 

(1, 1, 1)은 상대좌표로 적용되고, 객체가 (1, 2, 3)에 있을 경우 (2, 3, 4)를 바라보게 된다.

 

LookRotation() 메서드의 2번째 인자에는 머리가 향하는 방향을 지정할 수 있다.

객체의 머리쪽이 두번째 인자로 적어준 방향을 향한다. (Vector3.up , Vector3.down 등등)

 

# LookRotation() VS Rotate()

 

Rotate 안에 들어가는 벡터의 성분은 형식은 벡터이지만 실제 각도를 의미한다.

하지만 LookRotation 안에 들어가는 벡터의 성분은 실제 벡터이고, XYZ값을 의미한다.

 

 

Ex)

Object.Rotate(new Vector3(45, 45, 45)); 의 45는 각도를 의미하며,

Object.Rotation = Quaternion.LookRotation(new Vector3(45, 45, 45)); 의 45는 XYZ값을 의미한다.

 

즉, Quaternion.LookRotation 메서드는 벡터에서 힘을 제외하고 방향만을 필요로 하기 때문에

 

Object.Rotation = Quaternion.LookRotation(new Vector3(45, 45, 45));

Object.Rotation = Quaternion.LookRotation(new Vector3(1, 1, 1));

 

은 같은 결과를 나타낸다.

 

PC기반 FPS 게임에서는 보통 마우스를 사용한다.

이때 아래 코드와 같이  마우스의 위치값을 받아 그 방향으로 캐릭터를 회전시킬때 Quaternion.LookRotation 함수를 사용한다.

 

#참고

https://blog.naver.com/PostView.nhn?blogId=happybaby56&logNo=221324341865 

 

[유니티] Quaternion.LookRotation

public static Quaternion Quaternion.LookRotation(Vector3 forward); public static Quaternion Q...

blog.naver.com

https://godnr149.tistory.com/67

 

Quaternion, LookRotation, Normalize

Quaternion . LookRotation(Vector3) 해당 Object가 Vector3 방향으로 향하게끔 해준다. 특정 방향을 쳐다보게 해줌으로써 Object (ie. Player) 의 시선처리를 처리한다. 이때, Vector 값은 target과 현재 위치의..

godnr149.tistory.com

 

반응형

'Unity' 카테고리의 다른 글

Unity) SWSM(Summoners War Stat Maker) Ver 0.1  (0) 2022.10.09
2022.04.02) Cat on the Roof  (0) 2022.04.02
2022.04.01) Christmas RunGame  (0) 2022.04.01
Unity) 범위 감지 (Overlap)  (0) 2022.03.07
Unity) Oculus Quest VR  (0) 2022.02.24