Unity

[Unity] Vector의 크기 magnitude VS sqrMagnitude

devfactory 2024. 9. 28. 23:21

magnitude는 Vector의 크기를 반환한다. √(x*x+y*y+z*z)

sqrMagnitude는 Vector의 크기의 제곱을 반환한다. (x*x+y*y+z*z)

 

제곱근은 곱셈보다 연산속도가 느리기 때문에 비교를 위한 경우 magnitude를 사용하는 것보다 비교를 할 대상을 제곱해 비교하는 것이 더 빠르다.

 

Vector3 target;
float distance = 2;

if (target.magnitude > distance)
{
	//생략
}

즉 위의 코드보다 아래와 같이 사용하는것이 더 빠르다.

Vector3 target;
float distance = 2;

if (target.sqrMagnitude > distance * distance)
{
	//생략
}
반응형