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;

}
相关推荐
flash俊杰1 分钟前
Electron 桌面应用的进程模型:为什么 fork Next.js standalone
前端
沙蒿同学11 分钟前
我把架构约定编译成了会变红的测试:Wails v2 + Go + Vue3 桌面脚手架实战
前端·后端·github
cpolar技术支持14 分钟前
本地 Playwright 测试报告怎么远程复盘?Trace Viewer 跑起来后,用 cpolar 分享失败现场
前端·自动化测试·测试工具·cpolar·playwright
wordbaby14 分钟前
企业级后台管理系统路由设计与最佳实践指南
前端
胡志辉的博客23 分钟前
【完全开源】IP 纯净度检测 可一键部署到自己的CF
前端·javascript·chrome·ip·chromium
Hilaku1 小时前
作为面试官,我最怕遇到什么样的候选人?
前端·javascript·程序员
一木 之林1 小时前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器
TiDi1 小时前
Pinia优化重复请求
前端
web3d5202 小时前
01-用 Leafletjs 10 分钟搭一张水利一张图(Vue3 + Vite 实战)
前端·javascript
晚安日记wanna2 小时前
Vue2 的 defineProperty 差在哪四层追问筛掉九成候选人
前端·vue.js·面试