본문 바로가기

Unity/Knowledge

Vector, 몬스터가 플레이어를 추격 하는 로직 및 정규화

벡터 = 길이 + 방향

길이 = 크기 = 속도

 

몬스터가 플레이어에게 향하게 하려면?

플레이어의 좌표 - 몬스터의 좌표

 

플레이어가 마우스를 바라보려면?

마우스 포인터 좌표 - 플레이어의 좌표

 

[ 벡터에 곱셈을 활용 하는 경우 ]

곱셈을 사용해도 어짜피 방향은 동일하다. 속도를 조절하고 싶을 때 사용

 

[ 정규화 ]

몬스터와 플레이어가 있다고 가정한다면

몬스터가 플레이어를 따라가고 싶을 때 : P좌표 - M좌표

 

그런데 몬스터가 플레이어에게 가까워 진다면

자연스럽게 벡터의 길이가 짧아지므로 몹의 이속이 빨라지며

반대로 멀리 위치할 수록 벡터의 길이가 길어지므로 이속이 느려진다.

 

이 것을 방지하기 위해서 몬스터의 이속을 일정하게 유지 할 수 있도록 정규화를 사용한다

즉,

크기는 그냥 일정하게 하도록 해서 관심이 없는 상태이며 방향에만 관심이 있는 경우에

normalized를 사용한다.

 

[ 방향에는 관심없고 크기만 필요할 때 ]

방향에는 관심없고 크기만 필요할 때  Magnitude 를 사용한다.

일반적으로 물리 엔진에서의거리 계산 또는 충돌 감지 등에 사용

'Unity > Knowledge' 카테고리의 다른 글

오브젝트 조작 및 컴퍼넌트 참조  (0) 2024.05.24
Rigidbody2D - Body Type  (0) 2024.05.24
float.MaxValue; Time.deltaTime?  (0) 2024.05.14
Prefes와 Static 차이점  (0) 2024.05.12
공격 시스템 구축  (0) 2024.05.10