ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

UE4 C++学习 浅析基本数据类型

2022-08-28 11:30:09  阅读:259  来源: 互联网

标签:文本 FText 数据类型 C++ 使用 UE4 include 浅析 FString


本文只解析一些UE4特有的一些数据类型,一些常用的类型如布尔(Bool),整型(Int)等不再赘述。

 

UE4的基本数据类型有以下几种:

 

 

 

命名(FName)

在C++中,命名被写成FName

使用时需添加头文件:

#include "UObject/NameTypes.h"

 

我们来看下官方给的解释

 意思是说:Name是一种文本,并且当游戏中需要查找操作时,使用Name会比使用String更快一些。

除此之外,Name还无法被修改,这意味着Name无法执行对字符串的操作如翻转等,

不区分大小写(当WITH_CASE_PRESERVING_NAME设置为1是可以保留大小写)

 

不区分大小写的例子:

如下建立两个实例TitleCaseNamecamelCaseName

 

我们分别使用ToString将二者打印出来

结果要么他们都是MyActivity或者都是myActivity,二者变成哪个取决于哪一个变量首先被存储。

 

 字符串(FString)

在C++中字符串被写成FString 

要使用是需要加上头: 

#include "Containers/UnrealString.h"

 

FString的基本用法和 std::string 的用法基本一致,都是一个可改变长度的文本。

 

在网上看到关于FString 主要出现的问题都是中文乱码问题

例如:

如果书写程序为:

FString Str = "你好";

这时候就会出现乱码,解决方法是改成这样

FString Str = TEXT("你好");

 

 究其原因,所有使用FString的变量,UE4都会采用的是UTF-16编码将他们存储在内存中,而前一段代码中“你好”则是gb2312编码(简体中文),自然UE4中的编码会出错。

所以在导入文件或者保存什么表格进UE4中时一定要记得把编码改成UTF-8 or UTF-16.

 

 文本(FText)

要使用是需要加上头: 

#include "Internationalization/Text.h"

 

官方的对FText的解释是:

在UE4中,文本本地化的主要组件是FText类。所有面向用户的文本都应使用此类

同时,FText可以和FString互相通过函数进行转换,值得注意的是,FText是可以包含本地化数据(localization data)的,而FString不具有。所以在从FText转化为FString时会丢失数据。想要不丢失数据可以使用Text Value Marshalling来进行转化。

:至于什么是本地化数据,暂时还没有搞清楚,感觉也用不到,之后遇到了再回来补充。

 

FText给用户的接口有Slate/UMG和HUD/Canvas,也就是在游戏中展示给玩家看到的一些文本内容,我们都可以使用FText。

 

向量(FVector): 

使用时需要加上头:

#include "Math/Vector.h"

 

官方解释:向量是一个具有浮点精度的由三个不同的分量X,Y,Z所组成的一个组合(X,Y,Z)。

使用的方法也很简单,在UE4的世界里面采用的是笛卡尔坐标系,我们可以通过向量来准确的定位一个组件的具体位置。

 

 旋转体(FRotator)

头文件:

 #include "Math/Rotator.h"

 

官方解释:FRotator是一个用来存放旋转变换信息的一个容器。

它有三个参数:Pitch(俯角--Y),Roll(滚角--X),Yaw(偏角--Z)。分别表示绕Y轴,X轴,Z轴旋转的角度

 

变换(FTransform):

官方解释:由缩放旋转(作为四元数)和平移组成的变换。

为什么是这三个呢?用过UE4蓝图的朋友应该就知道了

 

 

这是物体在世界中位置最重要的三个值。

又由于,这三个值不同的变化顺序会影响到物体变化后的位置。

所以在UE4中 FTransform的默认变化顺序为:

Scale(缩放) -> Rotate(旋转) -> Translate(平移).

并且对于一个组合变换C = A * B,则首先会进行A的变换再进行B变换。

 

参考链接:

 Unreal – FName non-preserved case sensitivitiy | by Peter Brooks | Medium

Character Encoding | Unreal Engine Documentation

标签:文本,FText,数据类型,C++,使用,UE4,include,浅析,FString
来源: https://www.cnblogs.com/CatSevenMillion/p/16622422.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有