1 minute read

개요


FVector는 3차원 공간에서의 방향과 크기를 나타내는 자료형입니다. 수학에서 배우는 벡터와 동일한 개념입니다. FVector는 x, y, z 세 개의 성분(component)을 가지며, 각각 공간 상의 좌표 또는 방향을 나타냅니다.

  • 방향: 원점(0, 0, 0)에서 특정 좌표까지의 방향을 나타냅니다. 마치 화살표와 같습니다.
  • 크기(Magnitude): 벡터의 길이, 즉 원점에서 해당 좌표까지의 거리를 나타냅니다.

예를 들어, FVector(1, 0, 0)은 x축 방향으로 1만큼 떨어진 지점을 나타내는 벡터입니다. 이 벡터의 방향은 x축의 양의 방향이고, 크기는 1입니다.


구성 요소


FVector는 다음과 같은 세 개의 float 변수로 구성됩니다.

  • X: x축 방향의 값
  • Y: y축 방향의 값
  • Z: z축 방향의 값

FVector의 연산


FVector는 다양한 연산을 지원하며, 이를 통해 벡터의 방향과 크기를 조작할 수 있습니다.

  • 덧셈 (+): 두 벡터를 더합니다. 각 성분을 더하는 방식으로 계산됩니다. 예를 들어, FVector(1, 2, 3) + FVector(4, 5, 6) = FVector(5, 7, 9)입니다. 이는 두 벡터를 이어 붙이는 것과 같습니다.
  • 뺄셈 (-): 두 벡터를 뺍니다. 각 성분을 빼는 방식으로 계산됩니다. 예를 들어, FVector(4, 5, 6) - FVector(1, 2, 3) = FVector(3, 3, 3)입니다. 이는 한 벡터에서 다른 벡터까지의 방향을 나타냅니다.
  • 스칼라 곱 (*): 벡터에 스칼라 값(실수)을 곱합니다. 각 성분에 스칼라 값을 곱하는 방식으로 계산됩니다. 예를 들어, 2 * FVector(1, 2, 3) = FVector(2, 4, 6)입니다. 이는 벡터의 크기를 스칼라 값만큼 늘리거나 줄이는 것과 같습니다.
  • 내적 (Dot Product ⋅): 두 벡터 사이의 각도를 구하는 데 사용됩니다. 두 벡터의 크기를 곱한 값에 두 벡터 사이의 각도의 코사인 값을 곱한 값과 같습니다. FVector::DotProduct(A, B)로 계산합니다.
  • 외적 (Cross Product ×): 두 벡터에 수직인 벡터를 구합니다. FVector::CrossProduct(A, B)로 계산합니다. 오른손 법칙을 따릅니다.
  • 크기 (Magnitude): 벡터의 길이를 구합니다. Vector.Size() 또는 Vector.Length()로 계산합니다.
  • 정규화 (Normalization): 벡터의 방향은 유지하면서 크기를 1로 만듭니다. Vector.Normalize()로 계산합니다. 방향 벡터를 구할 때 유용하게 사용됩니다.

FVector의 활용


FVector는 게임 개발에서 다양한 용도로 활용됩니다.

  • 위치: 오브젝트의 3차원 공간 상의 위치를 나타냅니다.
  • 방향: 오브젝트의 방향 또는 이동 방향을 나타냅니다.
  • 속도/가속도: 오브젝트의 속도 또는 가속도를 나타냅니다.
  • 힘: 오브젝트에 작용하는 힘을 나타냅니다.
  • 충돌 감지: 두 오브젝트 사이의 거리를 계산하거나 충돌 여부를 판단하는 데 사용됩니다.

사용 방법


// FVector 생성
FVector Location(100.0f, 200.0f, 300.0f);

// 벡터의 크기 계산
float Size = Location.Size();

// 벡터 정규화
Location.Normalize();

// 두 벡터의 덧셈
FVector A(1.0f, 0.0f, 0.0f);
FVector B(0.0f, 1.0f, 0.0f);
FVector C = A + B; // C = (1.0f, 1.0f, 0.0f)

// 두 벡터의 내적
float DotProduct = FVector::DotProduct(A, B); // DotProduct = 0.0f

// 두 벡터의 외적
FVector CrossProduct = FVector::CrossProduct(A, B); // CrossProduct = (0.0f, 0.0f, 1.0f)


Top