A(x1, y1) B(x2, y2) 두 벡터가 있을 때
두 벡터의 내적(dot product)은 로 나타낼 수 있고 스칼라 값이 나오게 된다.
= x1x2 + y1y2
= ( = 0 ~ 180)
여기서 A, B 벡터의 크기는 0보다 크기 때문에 내적의 값이 +, -, 0값을 가질 때
에 영향을 받았다는 것을 알 수 있다.
내적의 값이 0보다 크면 는 +값을 가져야 하기 때문에 0 <= < 90 이어야 한다.
내적의 값이 0이면 == 90 이며,
내적의 값이 0보다 작으면 90 < <= 180 인 것을 알 수 있다.
벡터 A와 B가 방향벡터라면 내적은 와 같다.
단위벡터 A와 C의 내적이 일 때 보다 크다면 는 보다 작다는 것을 알 수 있다.
> => <
(0 ~ 180도 사이에서 cos은 1에서 0으로 줄어들며 단조 감소 함수이기 때문에)
Vector3 dirVec = distanceVec.normalized;
if(Vector3.Dot(transform.up, dirVec) > Mathf.Cos(rangeAngle*Mathf.Deg2Rad))
i++;
유니티에서 내적은 Vectot3.Dot 함수를 사용하여 얻을 수 있다.
transform.up은 y축(green) 벡터를 의미하며
transform.up, right, Vector3.left, down 등은 모두 방향벡터이다.