[언리얼 엔진] TTuple
- ⭐ Game Programming/Unreal Programming
- 2023. 2. 1.
Unreal Engine TTuple
개요
언리얼 엔진에서 TTuple을 사용하려 하는데 공식 가이드 문서도 없고(API 페이지만 있음) 마땅한 참고 예제가 없어 정리하고자 한다. Tuple은 2개이상의 값을 하나의 변수에 담기 위해 사용된다.
예제
// 선언과 초기화
TTuple<int32, FString> TupleTest(1, TEXT("Test"));
TTuple<int32, FString> TupleTest2 = MakeTuple(2, TEXT("Test2"));
//값 대입
TTuple<int32, FString> TupleTest3;
TupleTest3.Key = 3;
TupleTest3.Value = TEXT("Test3");
TTuple<int32, FString> TupleTest4;
TupleTest4.Get<0>() = 4;
TupleTest4.Get<1>() = TEXT("Test4");
TTuple<int32, FString, float> TupleTest5;
TupleTest5.Get<0>() = 5;
TupleTest5.Get<1>() = TEXT("Test4");
TupleTest5.Get<2>() = 5.55f;
//값 출력
UE_LOG(LogClass, Warning, TEXT("Test1 (%d, %s)"), TupleTest.Get<0>(), *TupleTest.Get<1>());
UE_LOG(LogClass, Warning, TEXT("Test2 (%d, %s)"), TupleTest2.Get<0>(), *TupleTest2.Get<1>());
UE_LOG(LogClass, Warning, TEXT("Test3 (%d, %s)"), TupleTest3.Get<0>(), *TupleTest3.Get<1>());
UE_LOG(LogClass, Warning, TEXT("Test4 (%d, %s)"), TupleTest4.Get<0>(), *TupleTest4.Get<1>());
UE_LOG(LogClass, Warning, TEXT("Test5 (%d, %s, %f)"), TupleTest5.Get<0>(), *TupleTest5.Get<1>(), TupleTest5.Get<2>());
결과 화면
한가지 특이점이 있다면 Test3에 있는 Key와 Value는 자료형이 2개인 TTuple에서만 사용가능하다. 아마도 TMap에 있는 TTuple로 인식하는듯 하다.
// helps ranged for loop iterate across TMap
template<class KeyType, class ValueType>
class TTuple
{
public:
KeyType Key;
ValueType Value;
};
담겨진 값을 설정하거나 가져오고자 할 때 모두 Get 함수를 사용하면 된다. 참조자로 넘겨주기 때문이다.
요약
- TTuple은 C++에 있던 std::tuple을 언리얼용으로 만든 것이다.
- UObject가 아니여서 UPROPERTY나 UFUNCTION으로 사용할 수 없다.
반응형