UE FString, FName ,FText 三者转换,再次学习,官方文档理解

一.整体理解,细节查看官方文档

1.UE中的编码 一般分为

  1. ANSI ; 2. UTF-8; 3.UE自己的编码(UE所有字符串FString,TCHAR:UTF-16格式存储在内存中); 4. 二进制

三个转化宏,宏的生命周期短,主要作为函数参数。它基本能胜任上述123的互相编码转换

虚幻引擎字符编码 | 虚幻引擎 5.7 文档 | Epic Developer Community

网络端,同步需要解码,编码来支持

2.FString

虚幻引擎中的FString | 虚幻引擎 5.7 文档 | Epic Developer Community

开头FString 更万能,并且它本身有TChar* 类型的数组

和其它第三方通信,需要转换编码。加密处理等。

TEXT()宏可以,增加字符串高度。方便TCHAR的转换

FString 可以转换为 其它类型变量 很全,官方文档总结的很清楚。float ,int ,bool 等

FString 是TCHAR* 数组,所以很多方法和TArray有类似。

两种典型的打日志,都用的FString:UE_LOG , 和 AddOnScreenDebugMessage

操作字符串,拼接切割从左从右读等,在网络传输时解析,很有用。

转换宏编码,小心生命周期

3.FName

虚幻引擎中的FName | 虚幻引擎 5.7 文档 | Epic Developer Community

用于资产命名,典型的场景有 改动态实例的参数,访问骨骼网格体的骨骼,当然骨骼Socket也用FName。不区分大小写,占唯一内存。作为索引组合存储在唯一字符串和实例编号的表格中

== 好,它不执行字符串的对比,而是对比索引中的数值,毕竟它们是唯一的,节约了CPU开销。

4.FText

虚幻引擎中的FText | 虚幻引擎 5.7 文档 | Epic Developer Community

UI,本地化经常用到。

二.转化,很早之前也写过转换的文章。UE5 C++学习笔记 FString FName FText相互转换_fstring 转 fname-CSDN博客可以结合看

cpp 复制代码
void AWXStringActor::InitialString()
{
	FString TestString = TEXT("This is a Test");

	//这下好记住了,FString 很万能
	//FSring -> FName
	FName TestName = FName(*TestString);
	//FString->FText
	FText TestText = FText::FromString(TestString);

	//FName -> FString
	FString BackString = TestName.ToString();

	//FText -> FString
	FString BackString2 = TestText.ToString();

	// Name 可直接 FText ,单Text 却要 经过FString中间商
	//
	//FName->FText
	//FText BackText =FText::FromString(TestName.ToString());饶了不需要
	FText BackText2 = FText::FromName(TestName);

	// FText-> FName
	FName TestName2 = FName(TestText.ToString());
	int32 a = 1;

}
相关推荐
Larcher4 小时前
React Router 不只是页面跳转:从 SPA 路由到权限守卫的完整实践
javascript·后端
Larcher4 小时前
大模型为什么每次回答都不一样?一文搞懂 Temperature、Top K 与 Top P
javascript·后端
·薯条大王7 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
用户938515635077 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
CodeSheep7 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
鱼樱前端8 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
eric-sjq8 小时前
10 分钟实战:用 0.6B 本地模型生成中文网页(WanlyFrontend + 编译器全流程)
javascript·机器学习·自然语言处理·html
浮生望8 小时前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
To_OC8 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
90后的晨仔8 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js