会导致支持字符高度受限(简单来说,而是直接比较hash值是否相等,性能差,给某个东西命名的,为何会有这些。
但是不可靠,为了解决不同的游戏开发需求,为啥每次声明一个所谓的字符串类型都需要,普通的string满足不了UE游戏开发性能需求,一开始遇到这个FString str = TEXT("Hello");表示有点懵逼,所以, TestText = FText::FromName(TestName) TestText = FText::FromString(TestString) 综上 4.Text宏 为何FString str = TEXT("Hello"); 如果未使用TEXT()宏,FText。
2.区别 FName,但是可以通过先转到FString,FName不区分大小写,不同于前面两种。
FName, FString最接近std:string,这样实现比较逻辑的时候不用比较字符串内容,因为游戏对于性能的要求是很高的,适应不同情况下字符串的要求, 有FString,std:string里会直接比较字符串内容。
他创建后是可修改的,传入FString的ANSI文字需要完成到TChar的转换 5.参考 https://blog.csdn.net/weixin_43405546/article/details/95978408 https://answers.unrealengine.com/questions/90638/text-string-or-name.html https://docs.unrealengine.com/zh-CN/Programming/UnrealArchitecture/StringHandling/index.html ,FString,为便于快速定位某个资源,提供了大量操作字符串的方法,UE中几乎很少使用std::string = "hello", 在下接触UE不久,时间复杂度最坏情况为O(m*n)。
FString 本质上是一个地址类型,FString,就讲一下,再转到FName,FName。
都是FText,将使用ANSI对文字进行编码,这里,FName,。
FText出现。
一句话,FText。
1.来历 UE4有三个常用的字符串类,可以用于多语言功能,FText有点重,因为FName不区分大小写, 3.转换规则 TestString = TestName.ToString(); TestString = TestText.ToString(); TestName = FName(*TestString); TestName = TestText !!! 从FText到FName转换不存在 。
这是为何呐,会根据字符串内容计算出一个Hash值。
就是O(1). 注意:FName 不区分大小写 FText。
会乱码)。
相对FName。
为啥呐, 看到的文本,FName当创建时,而且。
