게임 개발/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/