UE4数据驱动开发总结

UE4数据驱动开发总结_第1张图片

 

1.BP CDO/Instance

UE4数据驱动开发总结_第2张图片

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

UE4数据驱动开发总结_第3张图片

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

2.c++ ConstructHelpers

UE4数据驱动开发总结_第4张图片

UE4数据驱动开发总结_第5张图片

3.DataTable

UE4数据驱动开发总结_第6张图片

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

UE4数据驱动开发总结_第7张图片

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

UE4数据驱动开发总结_第8张图片

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

UE4数据驱动开发总结_第9张图片

使用数据表的优缺点

UE4数据驱动开发总结_第10张图片

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

4.CompositeDataTable

UE4数据驱动开发总结_第11张图片

UE4数据驱动开发总结_第12张图片

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

UE4数据驱动开发总结_第13张图片

5 DataAsset

UE4数据驱动开发总结_第14张图片

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

UE4数据驱动开发总结_第15张图片

UE4数据驱动开发总结_第16张图片

使用数据资产的优缺点

UE4数据驱动开发总结_第17张图片

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

UE4数据驱动开发总结_第18张图片

如何读取DataAsset?

先继承自DataAsset

UE4数据驱动开发总结_第19张图片

调用异步去加载资源

UE4数据驱动开发总结_第20张图片

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

UE4数据驱动开发总结_第21张图片

6 CurveTable

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

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

UE4数据驱动开发总结_第22张图片

可以转成CurveTable

UE4数据驱动开发总结_第23张图片

使用该节点去读取CurveTable

UE4数据驱动开发总结_第24张图片

7.Custom WorldSettings

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

UE4数据驱动开发总结_第25张图片

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

UE4数据驱动开发总结_第26张图片

8.Settings(ini)

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

UE4数据驱动开发总结_第27张图片

在ue4编辑器中会识别到

UE4数据驱动开发总结_第28张图片

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

UE4数据驱动开发总结_第29张图片

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

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

9.Raw: txt/csv/json/xml

使用这种方式的优缺点:

UE4数据驱动开发总结_第30张图片

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

UE4数据驱动开发总结_第31张图片

读取csv变成DataTable的方法:

UE4数据驱动开发总结_第32张图片

读取Json的方式

UE4数据驱动开发总结_第33张图片

小提示:

在ue4的编辑器控件中

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

UE4数据驱动开发总结_第34张图片

你可能感兴趣的:(ue4)