unreal 数据库 Object_加载

 

1.BP CDO/Instance

unreal 数据库 Object_c++_02

可以在c++中定义一个结构体

unreal 数据库 Object_unreal 数据库 Object_03

然后遍历结构体数组去获取数据

2.c++ ConstructHelpers

unreal 数据库 Object_unreal 数据库 Object_04

unreal 数据库 Object_加载_05

3.DataTable

unreal 数据库 Object_unreal 数据库 Object_06

然后遍历每个RowName获取每一行数据

unreal 数据库 Object_c++_07

对于数据表也可以导出到csv,json 格式数据

unreal 数据库 Object_unreal 数据库 Object_08

将数据表转出json后,直接在文本里面编辑,更加快捷方便

unreal 数据库 Object_c++_09

使用数据表的优缺点

unreal 数据库 Object_c++_10

这里值得说下的是:如果数据表load进来,那么其表中的所有蓝图,mesh等等资源也都要加载进来,那么是否会产生一瞬间的卡顿呢,这个要权衡

4.CompositeDataTable

unreal 数据库 Object_unreal 数据库 Object_11

unreal 数据库 Object_c++_12

作用是将多个数据表放到一起,在一个数据表中去读

unreal 数据库 Object_加载_13

5 DataAsset

unreal 数据库 Object_c++_14

视频中看到这个函数,其实函数就是获取该类的CDO

unreal 数据库 Object_加载_15

unreal 数据库 Object_unreal 数据库 Object_16

使用数据资产的优缺点

unreal 数据库 Object_数据_17

可用BulkEdit快速编辑多个DataAsset是指这样批量编辑

unreal 数据库 Object_unreal 数据库 Object_18

如何读取DataAsset?

先继承自DataAsset

unreal 数据库 Object_c++_19

调用异步去加载资源

unreal 数据库 Object_unreal 数据库 Object_20

或者像上面一样c++暴露一个Get静态方法,通过loadObject来load一个绝对路径的DataAsset,然后在蓝图中用Get静态方法直接调用里面的变量,使用AssetData优点是不会像DataTable一样如果表中有很多Mesh会一下子全部加载进来,缺点也很明显,如果有大量配置对象,需要创建大量的DataAsset

unreal 数据库 Object_数据_21

6 CurveTable

相比于DataTable,属于轻量级的数据表,只能配置一些float数据,好处是能通过csv导入

比如将csv文件直接拖动到ue4中

unreal 数据库 Object_数据_22

可以转成CurveTable

unreal 数据库 Object_unreal 数据库 Object_23

使用该节点去读取CurveTable

unreal 数据库 Object_c++_24

7.Custom WorldSettings

在项目设置里面有这样一个选项,可以配置默认的各种蓝图类的默认基类

unreal 数据库 Object_unreal 数据库 Object_25

比如,我们将WorldSettingsClass的默认类改成一个自己写好的类,那么就可以添加自定义的属性放到WorldSettings

unreal 数据库 Object_c++_26

8.Settings(ini)

ue4帮我们做好了一个类,我们继承UDeveloperSettings即可

unreal 数据库 Object_数据_27

在ue4编辑器中会识别到

unreal 数据库 Object_数据_28

在游戏目录下也同样会生成一个ini文件

unreal 数据库 Object_加载_29

如何读取ini文件的数据呢?

ini文件在引擎启动时被读取成一个UObject对象,直接获取CDO即可

unreal 数据库 Object_c++_30

9.Raw: txt/csv/json/xml

使用这种方式的优缺点:

unreal 数据库 Object_c++_31

读取txt输出成字符串的c++方法:

unreal 数据库 Object_数据_32

读取csv变成DataTable的方法:

unreal 数据库 Object_数据_33

读取Json的方式

unreal 数据库 Object_加载_34

小提示:

在ue4的编辑器控件中

unreal 数据库 Object_unreal 数据库 Object_35

有GetEditorWorld和GetGameWorld两个节点,看是在编辑器中还是在游戏中传入不同的WorldContext

unreal 数据库 Object_unreal 数据库 Object_36