【虚幻4】两种在虚幻4中处理数据的方法

1.通过数据表(Data Table)功能处理数据。

官方文档:中文官方文档

工具:Visual Studio、虚幻4、Office

数据表就是以有意义且有用的方式将各种相关的数据归类的表格, 其中,数据字段可以是任何有效的 UObject 属性,包括资产引用。

在设计师将 CSV 文件导入数据表前,程序员必须创建行容器以指示引擎如何解释数据。 这些数据表包含了列名,这些列名和基于代码的UStruct结构以及它的(子)变量一一对应, 这个UStruct的结构必须继承自FTableRowBase才可以被导入器辨识。

首列应命名为“Name”,并包含用于访问每行以供游戏使用的名称。随后的列 具有标题的变量名,而且同一列的下方为行/列交叉点的数据。鉴于此格式, 每一行将与继承自 FTableRowBase 的结构一一对应。

官方示例

例如,以下显示了升级经验数据的定义和向游戏提供数据的 CSV 文档:

【虚幻4】两种在虚幻4中处理数据的方法_第1张图片

CSV:


【虚幻4】两种在虚幻4中处理数据的方法_第2张图片

2.通过数据曲线

数据曲线的工作方式与数据表相似, 但数据曲线仅支持浮点型数据。和数据表一样,首列命名为“Name”,并包含用于访问每行 以供游戏使用的名称。首列后的每个列标题存储 用于绘制曲线的 X 轴变量。该标题下的数据为给定行的 Y 轴值。鉴于此格式, 每一行将与一个代码可访问并沿其插入数据的曲线相应。


数据表示例2:

CVS:

Id,HP,Icon,BlueprintKey

1,100,Texture2D'/Game/FirstPerson/Textures/Test.Test',Class'/Game/FirstPerson/BP_DataTableTest.BP_DataTableTest_C'

2,200,Texture2D'/Game/FirstPerson/Textures/Test.Test',Class'/Game/FirstPerson/BP_DataTableTest.BP_DataTableTest_C'

其中BP_DataTableTest是一个继承自AActor的一个蓝图类,BP_DataTableTest_C是实际生成的蓝图类。

对应的C++代码如下所示:


【虚幻4】两种在虚幻4中处理数据的方法_第3张图片

代码编译完成后,我们就可以把刚才创建好的csv文件导入到编辑器中,通过Import导入文件,导入后如下图所示:


【虚幻4】两种在虚幻4中处理数据的方法_第4张图片

在蓝图中的用法


【虚幻4】两种在虚幻4中处理数据的方法_第5张图片

在上述数据表示例中,引用的资产为延迟加载资产(TAssetPtr处理此事项,我们最终使用了LoadAsset和Load Class Asset来实现异步加载,注意右上角的时钟图标)。如果资产字段类型设置为UTexture,则将在加载数据表时加载所有资产。

你可能感兴趣的:(【虚幻4】两种在虚幻4中处理数据的方法)