FVector

김민수·2025년 1월 8일

언리얼 C++

목록 보기
3/32

FVector는 언리얼 엔진에서 3D 벡터(Vector)를 나타내기 위한 클래스다. 주로 다음과 같은 상황에서 사용된다.

  • 위치(Position): 3D 월드에서 객체의 위치를 나타낼 때
  • 방향(Direction): 특정 방향을 나타낼 때
  • 크기(Scale): 객체의 크기를 나타낼 때
  • 물리 계산(Physics): 속도, 가속도, 힘 등 물리적 연산을 할 때
FVector 변수이름(초기값X, 초기값Y, 초기값Z);

1. 주요 변수

변수설명
XX축 값
YY축 값
ZZ축 값
FVector MyVector(1.0f, 2.0f, 3.0f);
UE_LOG(LogTemp, Warning, TEXT("X: %f, Y: %f, Z: %f"), MyVector.X, MyVector.Y, MyVector.Z);


2. 주요 기능


⦁ 벡터 덧셈과 뺄셈

벡터끼리 더하거나 뺄 수 있다.

FVector VectorA(10.0f, 20.0f, 30.0f);
FVector VectorB(5.0f, 15.0f, 25.0f);

FVector ResultAdd = VectorA + VectorB;   // (15.0f, 35.0f, 55.0f)
FVector ResultSub = VectorA - VectorB;   // (5.0f, 5.0f, 5.0f)

⦁ 벡터 스칼라 곱셈과 나눗셈

벡터에 숫자를 곱하거나 나눌 수 있다.

FVector Vector(10.0f, 20.0f, 30.0f);

FVector ResultMul = Vector * 2.0f;  // (20.0f, 40.0f, 60.0f)
FVector ResultDiv = Vector / 2.0f;  // (5.0f, 10.0f, 15.0f)

⦁ 벡터의 크기(길이) 구하기

벡터의 크기(길이)를 구할 때는 Size 함수를 사용한다.

FVector Vector(3.0f, 4.0f, 0.0f);
float Length = Vector.Size();  // 길이 = 5.0f

참고: SizeSquared 함수는 제곱된 크기를 반환한다. 제곱근 계산을 생략하기 때문에 연산 속도가 더 빠르며, 비교 연산 시 유용하다.

float LengthSquared = Vector.SizeSquared();  // 길이 제곱 = 25.0f

⦁ 벡터 정규화(Normalize)

벡터를 단위 벡터(길이가 1인 벡터)로 만들 때 사용한다.

FVector Vector(3.0f, 4.0f, 0.0f);
Vector.Normalize();  // 벡터가 (0.6f, 0.8f, 0.0f)로 정규화됨


3. 함수

함수설명예시
DotProduct두 벡터의 내적을 계산FVector::DotProduct(A, B)
CrossProduct두 벡터의 외적을 계산FVector::CrossProduct(A, B)
Distance두 벡터 간 거리를 반환FVector::Distance(A, B)
GetSafeNormal안전하게 정규화된 벡터를 반환FVector Normal = Vector.GetSafeNormal();
IsNearlyZero벡터가 거의 0인지 확인Vector.IsNearlyZero()
Equals두 벡터가 거의 같은지 확인 (오차 범위 허용)VectorA.Equals(VectorB, Tolerance)
ClampSize벡터 크기를 최소, 최대 값으로 제한Vector.ClampSize(0.0f, 100.0f)


4. 주의사항

  • 정규화된 벡터 사용 여부 확인
    벡터 연산에서 방향을 다룰 때는 정규화된 벡터를 사용하는 것이 중요하다. 정규화되지 않은 벡터로 방향을 계산하면 예상치 못한 결과가 나올 수 있다.

  • IsNearlyZero로 비교하기
    부동 소수점 오차로 인해 벡터를 비교할 때는 == 연산자 대신 IsNearlyZero 또는 Equals 함수를 사용하는 것이 좋다.

profile
안녕하세요

0개의 댓글