基础变量类型
1 | // 布尔类型变量 |
FString、FName、FText三者的区别和相互转化
区别:
FString
:接近C++中的 std::string
,更着重于字符串的操作,提供字符串的操作接口,与其他两个相比唯一一个可以修改的变量,所以消耗更多,性能更低
FName
:着重于表示名称,不区分大小写,不可以更改,引擎中的字面名称都是FName
类型,FName
在创建的时候会根据内容创建一个哈希值,同样的内容只会存储一次,通过哈希值FName
的查找和访问比较快,通过比较哈希值来区分不同的FName
FText
:着重在于显示与本地化,显示玩家能直接看到的信息,本地化即多语言的处理,不可更改。相较于另外两种类型,FText会更加的臃肿,但提供了优秀的本地化功能
本地化:一个字符串,在不同的地区显示为不同的字符。如 ”菜单“ 在英语地区显示为 “Menu“ ,这种支持不同语言地区显示不同字符的工作,就叫做本地化
转化
FString
—>FName
/FText
1
2
3
4
5
6// 创建一个FString
FString MyString = TEXT("I am string");
// FString转化为FName
FName MyName = FName(*MyString);
// FString转化为FText
FText MyText = FText::FromString(MyString);FName
—>FString
/FText
1
2
3
4// FName转化为FString
MyString = MyName.ToString();
// FName转化为FText
FText MyText = FText::FromName(MyName);FText
—>FString
/FName
1
2// FText转化为FString
FString strFromText = MyText.ToString();注意:
FText
不能直接转换成FName
,需要FText->FString->FName
基础数据类型输出打印
1 | // 基础数据类型打印 |