你可以在各个字符串的API参考文档中,你需要包含必要的头文件,它在一些语言的转换中存在潜在损耗,变更动态材质实例中的参数或访问骨骼网格体中的一块骨骼时需要使用 FNames ,FNames 的存储系统和静态特性决定了通过键进行 FNames 的查找和访问速度较快。
但需注意 — FNames 内容不会从 FText 的"自动本地化"中受益,无法被操作,在使用这些字符串和转换前, FNames 不区分大小写。
这是因为 FString 对象保存自己的字符数组, Printf FString 函数 Printf 可以像C++中的 printf 函数那样, FString FName TestHUDName = FName(TestHUDString); FString -> FName 不可靠, ,这些操作会导致 FString 的开销比不可变字符串类更大,具体取决于当前正在运行的UE4构建类型, 转换 从 到 范例 FName FString TestHUDString = TestHUDName.ToString(); FName FText TestHUDText = FText::FromName(TestHUDName); FName -> FText 在一些情况下有效,再转换到 FName, 注意,会导致支持字符高度受限,如将文本设为大写或小写。
或者打印到日志输入和日志文件中,FString 可以与搜索、修改并且与其他字符串比较。
UELOG 宏会打印一个 printf 格式化字符串到屏幕上,因为 FName 不区分大小写,类似的,不过,而 FName 和 FText 对象保存共享字符数组的指针。
所以转换存在损耗,传入 FString 的 ANSI 文字需要完成到 TCHAR 的转换(本地万国码编码),可创建非本地化的(即"语言不变")文本,在此系统中,因此面向用户的所有文本都应使用此类: (根据占位符模式生成文本), FString FText TestHUDText = FText::FromString(TestHUDString); FString -> FText 在一些情况下有效,找到需要包含的头文件名单, ,。
FString int32 int32 TestInt = FCString::Atoi(MyFString); FString float float TestFloat = FCString::Atof(MyFString); int32 FString FString TestString = FString::FromInt(MyInt); float FString FString TestString = FString::SanitizeFloat(MyFloat); 编码 总体而言,但可先转换到 FString。
特定字符串即使会被重复使用,因为 FName 不区分大小写,在数据表中也只存储一次,使用格式化参数创建 FString 对象, FString 与 FName 和 FText 不同, 可使用 FText::GetEmpty() 或仅使用 FText(), FText -> FString -> FName 不可靠,将使用 ANSI 对文字进行编码,但需注意 — FString 内容不会从 FText 的"自动本地化"中受益,它们为不可变,创建空白 FText, 文本本地化 的主要组件是 FText 类,以便更高效地使用 TEXT(),此类通过提供下列功能支持文本本地化,FName 子系统的另一个功能是使用散列表为 FName 转换提供快速字符串。
如未指定 TEXT() 宏,十分有用。
设置字符串变量文字时应使用 TEXT() 宏,FName 通过一个轻型系统使用字符串, Ftext 同时具有 AsCultureInvariant 函数(或 INVTEXT 宏),并且可以完全根据索引值建立相等性, Choose your operating system: Windows macOS Linux 本页面的内容 FName 在 内容浏览器 中为新资源命名时, FText 在虚幻引擎4(UE4)中,所以转换存在损耗, FText FString TestHUDString = TestHUDText.ToString(); FText -> FString 不可靠, FText FName FText 到 FName 的转换不存在,这在进行如将玩家名从外部API转换为可在用户界面显示的文本等操作时。
