낑깡의 게임 프로그래밍 도전기

Unity C# Magnitude : 벡터의 길이(크기) / sqrMagnitude : 벡터의 길이 제곱값 본문

Unity C#

Unity C# Magnitude : 벡터의 길이(크기) / sqrMagnitude : 벡터의 길이 제곱값

낑깡겜플밍 2024. 10. 10. 13:41
반응형

Magnitude : 한마디로 벡터의 크기를 반환하는 프로퍼티
sqrMagnitude : Magnitude의 제곱값

벡터의 크기란 백터이 시작점과 끝점의 양수 길이라고 생각하면 된다.

 

Magnitude 는 선한점과 다른 한점의 거리를 구해서 두점사이의 길이를 알아낼때, 두개의 벡터를 비교할때 사용하면된다. 속도 계산을 할때 유용하다고 한다.  벡터거리나 크기를 비교하려면 변수로 한번 감싼다음에 비교해야한다

예시)

Vector3 vec = new Vector3(x, y, z);
float magnitude = Vector3.magnitude(vec);

 

라인 렌더러로 가시선 생성
간격을 나누어 나무를 심음

 나는 두개의 점을 찍으면 나무가 일정한 간격으로 심어지는 기능을 만들때 사용하였다. 사용자가 1번에서 2번인 오른쪽 방향으로 찍을 수도 있지만 2번에서 1번인 왼쪽 방향으로 찍을 수도 있기 때문에 단순히 좌표만 간격을 주어서는 안되었다.
 그래서 크기를 비교해서 첫번째 포인트의 벡터가 더 크면 두개의 값을 스왑해서 심기 기능을 수행하도록 할때 사용하였다. 

 

sqrMagnitude 는 단순하게 Magnitude의 제곱값을 뱉어 낸다고 생각하면된다.

예시)

float distanceSquared = (endPoint - startPoint).sqrMagnitude;
반응형