[ UE ] FIntPoint가 뭘까?

닿메_dahme
|2025. 3. 12. 21:26

오늘은 구조체로 코딩을 하다가 FIntPoint라는 자료형?에 대해 접하게 되었다.

뭔지 궁금해서 언리얼에서 사용하는 다른 자료형들과 함께 정리를 해보았다.

 

TArray
  • std::vector와 유사하게 동작하지만 AdddUnique, RemoveAtSwap 등의 부가적인 API를 제공한다고 함.
  • 컨테이너의 element들이 가비지 컬렝팅됨. -> UObject에서 파생된 포인터들을 모두 담을 수 있음

 

 

TMap
  • std::map과 유사한 언리얼에서 사용하는 키 벨류 구조의 컨테이너

 

 

FIntPoint
  • 언리얼에서 사용하는 정수형 좌표(2D 벡터)를 표현하는 구조체
  • 기본적인 연산자(+, -, *, /)를 지원함
FIntPoint PointA(10, 20); // X=10, Y=20 FIntPoint PointB(30, 40);

 

연산방법 FIntPoint A(10, 20); FIntPoint B(5, 5);

// (A의 X인 10 + B의 X인 5 = 15, A의 Y인 20 + B의 Y인 5 = 25)
FIntPoint Sum = A + B; 

// (5, 15) FIntPoint Mult = A * 2; // (20, 40)
FIntPoint Diff = A - B;

 

Size도 반환가능하다!!

// 결과: 5.0 (3^2 + 4^2 = 5) -> X^2 + Y^2 = 루트결과인건가?
FIntPoint P(3, 4); float Size = P.Size();

 

Clamp로 범위 제한도 가능

FIntPoint P(120, 50);
// (100, 50)
FIntPoint Clamped = P.ClampAxes(0, 100);

 

 

마지막 말

언리얼의 자료형에 더 익숙해진 것 같아서 뿌듯하다.

항상 클래스만 쓰다가 구조체를 쓰니까 뭔가 낯설긴한데 자주 예제를 찾아서 적용해봐야겠다.