Unity/개념

[Unity] 백터의 외적과 내적 (feat : 게임 개발)

turbulence93 2025. 7. 28. 20:04

1. 개념 정리

벡터의 내적 (Dot Product)

  • 정의: 두 벡터의 방향이 얼마나 유사한지를 나타내는 값
  • 결과: 스칼라(실수) 값이 반환됨
  • 범위: −1,1-1, 1 (단위 벡터 기준)

벡터의 외적 (Cross Product)

  • 정의: 두 벡터에 수직인 새로운 벡터를 구함
  • 결과: 벡터
  • 방향: 오른손 법칙을 따름
  • 2D에서는 외적의 z값만 사용함

2. 게임 개발에서의 활용

내적의 활용 (Dot Product)

  • 캐릭터 시야 판정 (시야각 체크)
    두 벡터(시선 방향 vs 대상 방향)의 내적이 클수록 정면에 가까움
  • 정렬 여부 확인: 내적이 1이면 완전 같은 방향, 0이면 직각, -1이면 정반대 방향
  • 내적은 대상이 시야 내부에 있는지만 체크가 되고 중심을 기준으로 왼쪽인지 오른쪽인지 방향 구분은 할 수 없음

외적의 활용 (Cross Product)

  • 회전 방향 판단 (좌/우 판별)
    2D에서 외적의 부호를 이용해 대상이 왼쪽에 있는지, 오른쪽에 있는지 판별
  • 회전축 계산 (3D)
    LookRotation 시 회전축이 필요한 경우 외적을 사용

3. 개인적인 생각

모의 면접 중 막상 설명하려니 생각이 안 나서 아쉬웠다.

실제로 사용하고 있음에도 개념적으로 확립하지 못해서 다시 한번 공부해보고 개념을 다지는 시간이 됐다.
이 두 연산은 단순한 수학 개념을 넘어서 실제 게임 내 시야 판정, 방향 회전, 캐릭터 간 상호작용에서 자주 쓰이므로, 개념 + 코드 예제 + 시각적 이미지로 함께 정리해봐야겠다.

'Unity > 개념' 카테고리의 다른 글

[Unity] 유니티 생명 주기  (0) 2025.08.02
[Unity] 제네릭에 대하여  (2) 2025.08.01
[Unity] 코루틴과 인보크  (1) 2025.07.31
[Unity] Override와 Overloading  (2) 2025.07.30
[Unity] A* 알고리즘 개념 정리  (2) 2025.07.29