UE4数据驱动开发总结

 

1.BP CDO/Instance

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

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

2.c++ ConstructHelpers

3.DataTable

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

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

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

使用数据表的优缺点

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

4.CompositeDataTable

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

5 DataAsset

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

使用数据资产的优缺点

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

如何读取DataAsset?

先继承自DataAsset

调用异步去加载资源

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

6 CurveTable

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

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

可以转成CurveTable

使用该节点去读取CurveTable

7.Custom WorldSettings

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

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

8.Settings(ini)

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

在ue4编辑器中会识别到

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

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

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

9.Raw: txt/csv/json/xml

使用这种方式的优缺点:

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

读取csv变成DataTable的方法:

读取Json的方式

小提示:

在ue4的编辑器控件中

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

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4中的数据表格(Data Table)是一种用于存储数据的表格形式,类似于电子表格软件中的数据表格。数据表格可以用于存储游戏中的各种数据,如游戏物品、关卡数据、角色属性等等。与代码中硬编码的数据不同,数据表格可以在游戏运行时动态加载和修改,提高了游戏数据的灵活性和可维护性。 数据表格可以在UE4编辑器中创建和编辑,也可以通过Excel等电子表格软件导入。在数据表格中,每一行代表一个数据项,每一列代表数据项的一个属性。数据表格中的每个单元格可以存储不同类型的数据,如整数、浮点数、字符串、布尔值等等。数据表格中的数据还可以通过蓝图和代码进行读取和修改。 在UE4中,使用数据表格可以提高开发效率和代码可读性。例如,在实现游戏角色的属性时,可以将角色属性存储在数据表格中,而不是将属性硬编码在代码中。这样,可以更方便地修改和管理角色属性,减少了代码的复杂性和维护难度。 在使用数据表格时,需要注意以下几点: 1. 数据表格中的数据在游戏运行时需要进行加载和解析,可能会影响游戏性能。因此,在设计数据表格时需要考虑数据量和读取频率,以保证游戏的流畅性。 2. 数据表格中的数据需要进行格式检查和错误处理,以避免出现运行时错误。 3. 数据表格中的数据需要进行版本控制,以保证不同版本之间的兼容性和数据一致性。 总之,UE4中的数据表格是一种非常有用的工具,可以帮助开发者管理和存储游戏数据,提高游戏开发效率和代码可读性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值