UE4 C++ FString FText FName之间的相互转化

FString
FName
FText
最常见的是 FString 类型,FName 和 FText 属于不可变字符串,一经创建其中的内容就无法改变。FString 属于可变字符串,可以对其常规的字符串操作,如分片,大小写转换等操作,编程时使用较多的也是它。三者之间可以进行相互转换。

FName 不区分大小写,主要用于标识资源路径,它的优点就是查找和访问速度快,在游戏开发过程中,如果可以确定字符串是固定不变的数据,如资源路径,或者数据表格原始数据,且无需考虑文本国际化的时候,建议使用FName进行创建。

FText 主要用于文本本地化[4]。如今游戏出海已经成为一种趋势,当你的游戏需要支持不止一种语言时,就需要考虑文本本地化,建议最初时就作出这样设定。文本本地化是一项比较复杂的内容,会单独抽出章节讲解,现在需要需要记住的是,当字符串需要显示给玩家时,使用FText比较合适。
那么三者之间如何进行转化:

//创建一个Fstring
	FString MyString = FString(TEXT("I am String"));

	//FString转化成FNmae
	FName MyName;
	MyName = FName(*MyString);
	//FString转化成FText
	FText MyText ;
	MyText = FText::FromString(MyString);

	//FName转化成FString
	MyString = MyName.ToString();
	//FName转化成FText
	MyText = FText::FromName(MyName);

	//FText转化成FString,不存在FText转化成FName
	MyString = MyText.ToString();

	//float转化成Fstring
	float MyFloat = 10.0f;
	FString::SanitizeFloat(MyFloat);
	//将整型转化成FString
	int32 MyInt = 32;
	FString::FromInt(MyInt);
	//将bool转化成FString
	bool inbool;
	inbool ? TEXT("True") : TEXT("false");

官方文档参考

猜你喜欢

转载自blog.csdn.net/qq_43021038/article/details/124978726