게임 개발/Unreal Engine 기본

[UE4] 문자열 변환 - FName, FText, String

지노윈 2022. 2. 9. 16:31
반응형

문자열 클래스간 변환

변환 형식 변환 방법
FName → FString TestString = TestName.ToString();
FName → FText TestText = FText::FromName(TestName);
FString → FName TestName = FName(*TestString);
// 손실 위험 있음. FName이 대소문자 구분 없음
FString → FText TestText = FText::FromString(TestString);
FText → FString TestString = TestText.ToString();
// 안전하지 않음. 언어 변환시 손실 위험 때문
FText → FName FText → FString -> FName
// 직접 변환 없음
// 손실 위험 있음

 

FString으로 변환

변환 형식 변환 방법
float → FString FString::SanitizeFloat(FloatVariable);
FString::printf(TEXT("%f", FloatVariable));
int → FString FString::FromInt(IntVariable);
bool → FString InBool ? TEXT("true") : TEXT("false");
FVector → FString VectorVariable.ToString();
FVector2D → FString Vector2DVariable.ToString();
FRotator → FString RotatorVariable.ToString();
FLinearColor → FString LinearColorVariable.ToString();
UObject → FString (InObj != NULL) ? InObj->GetName() : FString(TEXT("None"));

 

기타 변환

변환 형식 변환 방법
FString → float float FloatVariable = FCString::Atof(*StringVariable);
FString → int int IntVariable = FCString::Atoi(*StringVariable);
std::string → FString FString StringVariable(StdString.c_str());
FString → std::string std::string StdString(TCHAR_TO_UTF8(*StringVariable));
Enum → FName EMyState State = EMyState::Two;
UEnum* StateEnum = FindObject<UEnum>(ANY_PACKAGE, TEXT("EMyState"), true);
FName NameVariable = StateEnum->GetNameByValue(static_cast<int64>(State));
Enum → FString EMyState State = EMyState::Two;
UEnum* StateEnum = FindObject<UEnum>(ANY_PACKAGE, TEXT("EMyState"), true);
FString StringVariable = StateEnum->GetNameStringByValue(static_cast<int64>(State));

 

문자열을 다루는 것에 대한 설명은 다음 글을 참고해 주세요.

[게임 개발/Unreal Engine 기본] - [UE4] 문자열 다루기 - FName, FText, String

 

출처
https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/StringHandling/FString/