언리얼에서 FString형으로 형변환을 해주는 메서드에 ToString()이 있는 거는 알고 있었는데
오늘 공부한 강의 내용에서 Location값(Vector3)을 ToCompactString()으로 형변환하는 것을 알게 되었습니다.
그래서 FString형으로 형변환 하는 메서드 종류에 추가로 어떤 내용들이 있는지 궁금하게 되어서 공부하게 되었습니다.
1. ToString()
- 용도: 일반적인 문자열 변환.
- 특징: 객체나 데이터 값을 FString으로 변환.
FName MyName = FName(TEXT("SONSAZANG"));
FString NameAsString = MyName.ToString();
// 결과 "SONSAZANG"
2. ToCompactString()
- 용도: 데이터를 간결하게 표현된 문자열로 변환.
- 특징: FName, FText 등에서 정보를 축소해 간결한 표현으로 출력.
FVector MyVector(1.23f, 4.56f, 7.89f);
FString CompactVector = MyVector.ToCompactString();
// 결과 "1.23, 4.56, 7.89"
3. FString::FromInt()
- 용도: 정수 데이터를 문자열로 변환.
- 특징: 정수를 직접 FString으로 변환.
int32 MyInt = 123;
FString IntAsString = FString::FromInt(MyInt);
// 결과: "123"
4. FString::SanitizeFloat()
- 용도: 부동소수점(Float) 데이터를 문자열로 변환
- 특징: 소수점을 포함해 숫자를 문자열로 변환하며 안전하게 처리.
float MyFloat = 123.456f;
FString FloatAsString = FString::SanitizeFloat(MyFloat);
// 결과: "123.456"
5. 구조체 전용 ToString() 메서드
- 용도: FVector, FColor, FRotator 등 구조체를 문자열로 변환.
- 특징: 각 구조체는 특정 포맷으로 정보를 문자열로 반환.
FColor MyColor(255, 128, 64, 255);
FString ColorAsString = MyColor.ToString();
// 결과: "(R=255,G=128,B=64,A=255)"
FVector MyVector(1.0f, 2.0f, 3.0f);
FString VectorAsString = MyVector.ToString();
// 결과: "X=1.000 Y=2.000 Z=3.000"
6. AppendInt()
- 용도: 문자열 끝에 정수를 추가.
- 특징: 기존 문자열에 정수를 간단히 연결.
FString BaseString = TEXT("Value: ");
BaseString.AppendInt(42);
// 결과: "Value: 42"
전체 코드
// StringConvertTest.cpp
void UStringConvertTest::BeginPlay()
{
Super::BeginPlay();
FName MyName = FName(TEXT("SONSAZANG"));
FString NameAsString = MyName.ToString();
UE_LOG(LogTemp, Display, TEXT("NameAsString %s"), *NameAsString);
FVector MyVector1(1.23f, 4.56f, 7.89f);
FString CompactVector = MyVector1.ToCompactString();
UE_LOG(LogTemp, Display, TEXT("CompactVector %s"), *CompactVector);
int32 MyInt = 123;
FString IntAsString = FString::FromInt(MyInt);
UE_LOG(LogTemp, Display, TEXT("IntAsString %s"), *IntAsString);
float MyFloat = 123.456f;
FString FloatAsString = FString::SanitizeFloat(MyFloat);
UE_LOG(LogTemp, Display, TEXT("FloatAsString %s"), *FloatAsString);
FColor MyColor(255, 128, 64, 255);
FString ColorAsString = MyColor.ToString();
UE_LOG(LogTemp, Display, TEXT("ColorAsString %s"), *ColorAsString);
FVector MyVector3(1.0f, 2.0f, 3.0f);
FString VectorAsString = MyVector3.ToString();
UE_LOG(LogTemp, Display, TEXT("VectorAsString %s"), *VectorAsString);
FString BaseString = TEXT("Value: ");
BaseString.AppendInt(42);
UE_LOG(LogTemp, Display, TEXT("BaseString %s"), *BaseString);
}