https://www.youtube.com/watch?v=4-76jesTq2I
* 이 블로그는 두 벡터가 모두 정규화(normalized)된 경우, 즉 길이가 1인 단위 벡터일 때의 내적 결과를 기준으로 한다
ㄴ 일반적인 벡터끼리의 내적은 a · b = |a| * |b| * cos(θ)이다
ㄴ 따라서 벡터 길이가 1일 때만 내적 값이 -1 ~ 1 사이가 된다
* 벡터의 내적(Dot Product)
두 방향 벡터가 얼마나 같은 방향을 향하고 있는지를 숫자로 표현해주는 도구이다
두 벡터가 같은 방향일 수록 1에 가까워지고, 반대일수록 -1에 가까워진다
각도(θ) | 내적 값(dot) | 방향 관계 설명 |
0° | 1.0 | 완전히 같은 방향 |
90° | 0.0 | 수직(측면) |
180° | -1.0 | 완전히 반대 방향 |
* 내적은 벡터의 길이가 아닌, 두 방향이 얼마나 유사한지를 수치로 판단하는 도구임을 명심하자!!
[예를 들어, 거리를 구하고 싶다면]
두 위치 백터의 차를 구하면, 방향 벡터를 얻을 수 있다
(이 벡터는 거리와 방향 정보를 모두 포함하고 있다)
구한 거리의 벡터의 크기(magnitude)를 구하면 두 위치 간의 실제 거리이고,
구한 거리의 벡터를 정규화(normalized vector)하면 방향만 남긴 단위 벡터가 된다
* transform.forward
길이가 1인 단위 벡터(normalized vector)
* magnitude는 항상 양수이고, 방향은 부호를 가진다
* 실제 사용 예제
Vector3 toTarget = (target.position - transform.position).normalized;
float dot = Vector3.Dot(transform.forward, toTarget);
if (dot > 0.7f)
Debug.Log("바라보고 있음");
'IT공부' 카테고리의 다른 글
[Unity] 사인 곡선을 활용한 진동 표현 이해하기 (0) | 2025.07.01 |
---|---|
[Unity] 수학과 Unity 관점에서 벡터와 스칼라 정리 (0) | 2025.06.28 |
[C#] .NET 가비지 컬렉션(GC, Garbage collection) 둘러보기 (0) | 2025.06.25 |
[C#] .NET 9 Random 클래스 살펴보기 (0) | 2025.06.18 |
[C#] .NET 9 decimal 구조체 톺아보기 (0) | 2025.06.16 |