반응형
TTuple은 언리얼 엔진에서 여러 개의 데이터를 묶어서 한 번에 다루고 싶을 때 사용하는 템플릿 컨테이너
입니다.
C++ 표준의 std::tuple
과 유사하지만, 언리얼의 타입 시스템과 잘 통합되어 있으며 함수 반환값이나 간단한 데이터 묶음에 매우 유용합니다.
1. 기본 사용법
TTuple<int32, FString> UserData = MakeTuple(42, TEXT("PlayerOne"));
int32 ID = UserData.Get<0>();
FString Name = UserData.Get<1>();
UE_LOG(LogTemp, Log, TEXT("ID: %d, Name: %s"), ID, *Name);
MakeTuple()
함수로 초기화Get<Index>()
방식으로 각 요소에 접근
2. 사용하기 좋은 상황
- 여러 개의 값을 하나의 함수에서 반환하고 싶을 때
- 결과와 상태 정보를 함께 리턴하고 싶을 때
- 구조체를 만들기엔 과한 간단한 데이터 묶음이 있을 때
TTuple<bool, int32> CheckScore()
{
bool bIsValid = true;
int32 Score = 150;
return MakeTuple(bIsValid, Score);
}
3. 예외 처리 및 주의사항
- Get<Index>()를 잘못 쓰면 컴파일 오류 발생
- 인덱스 기반이므로 가독성이 떨어질 수 있음
- C++17의 구조 분해 할당(Structured Binding)은 UE에서 완전히 지원되지 않음
4. 함수 반환 타입으로 TTuple 사용해도 괜찮을까?
함수에서 여러 개의 값을 반환해야 할 때 TTuple
은 매우 유용합니다.
다만 호출자는 반환되는 값의 개수와 타입을 정확히 알고 있어야 하므로 문서화 또는 명시적 변수명 사용이 중요합니다.
TTuple<bool, FString> TryGetName()
{
return MakeTuple(true, TEXT("PlayerA"));
}
auto Result = TryGetName();
if (Result.Get<0>())
{
UE_LOG(LogTemp, Log, TEXT("이름: %s"), *Result.Get<1>());
}
값의 개수가 유동적이라면 TArray
, TMap
, USTRUCT
가 더 적합합니다.
결론
TTuple
은 단순한 다중 값 반환 또는 전달이 필요할 때 매우 효과적인 도구입니다. 다만 인덱스 접근 방식은 실수하기 쉽고, 복잡한 데이터에는 구조체 사용이 더 안전할 수 있습니다.
함수 반환값이나 상태 결과 전달 등에서 TTuple
을 적극 활용해 보세요.
🔗 공식 문서
반응형
'Unreal Engine' 카테고리의 다른 글
언리얼 UPROPERTY 필수 메타데이터 정리 (0) | 2025.05.10 |
---|---|
언리얼 엔진에서 게임 저장하기 (SaveGame, JSON 저장/불러오기 예제 포함) (0) | 2025.05.09 |
언리얼 엔진 UMG C++ 연동 가이드 (BindWidget, Optional, Anim 완전정복) (0) | 2025.05.07 |
언리얼 TMap 완전정복 (기본, 검색, 삭제, Struct 키 예제까지) (0) | 2025.05.07 |
언리얼 엔진 TArray 완전정복 (추가, 삭제, 검색, 주의사항까지) (0) | 2025.05.07 |