게임엔진/Unreal
[Unreal] 문자열 변환 - FName, FText, FString
ShovelingLife
2022. 7. 31. 20:49
문자열 클래스간 변환
변환 형식 | 변환 방법 |
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::Atof(*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); |