Unreal Cook Book:数据驱动
来源:互联网 发布:淘宝卖家怎么快速升心 编辑:程序博客网 时间:2024/05/22 10:37
在游戏开发中经常要用到数据驱动,俗称“策划拉表”。在虚幻4引擎中,有多种方式处理数据,在这里我就介绍最常用的两种。
虚幻引擎内建的表格导入机制
假设策划同学有以下这样一个数据表,用来存储道具相关的信息:
想要导入这个数据表的话,首先需要定义一个与这个表结构相对应的数据结构。如果使用C++编程的话,需要创建一个FTableRowBase的派生类;使用Blueprint的话,就创建一个标准的结构体就可以了。下图就是我为这个表格创建的Blueprint Struct。
然后,上述表格需要存成CSV格式。然后,你就可以把这个CSV文件拖放到引擎的Content Browser中了。在数据导入的设置中,把数据类型设置成我们这个结构体:ItemDef。
最后,我们就可以使用GetDataTableRowNames和GetDataTableRow这两个蓝图节点来读取这个表格数据了。具体的蓝图如下:
如果看不清图片的话,请下载工程文件吧。:)
虚幻引擎的DataAsset
另外一个常见的需求是我们需要在引擎编辑器中编辑一些常用的数据对象,这些数据并不需要批量配置,但需要方便灵活的修改。在Unity3D中提供了ScriptObject来做这类事请,而在虚幻4中提供了DataAsset,也是同样的目的,使用方法也十分类似。
首先我们需要创建一个UDataAsset的派生类,用这个类来管理一组数据:
/** * 演示使用DataAsset来处理数据 */UCLASS(Blueprintable, Category="DataDemo")class UNREALCOOKBOOK_API UQuestDataAsset : public UDataAsset{ GENERATED_BODY()public: UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "DataDemo") FString QuestSetName; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "DataDemo") TArray<FQuestDef> QuestArray;};
有了这个类之后,在Content Browser的New Asset菜单–>杂项里面选择“DataAsset”,就会弹出下面这个窗口,窗口中就多出了我们这个类:
- 创建了这个DataAsset之后,就可以用引擎内置的编辑器来编辑它:
- 编辑好之后,我们就可以在Blueprint中使用LoadAsset节点来加载它:
工程文件&源代码下载
源代码下载: https://code.csdn.net/neil3d/unrealcookbook
DEMO运行:Content/DataDemo/DataDemoMap
相关官方文档:https://docs.unrealengine.com/latest/INT/Gameplay/DataDriven/
- Unreal Cook Book:数据驱动
- Unreal Cook Book:创建对象
- Unreal Cook Book:神奇的Spline Mesh
- Unreal Cook Book:神奇的Spline Mesh
- Unreal Cook Book:动态改变材质的颜色等参数
- Unreal Cook Book:VR应用中的焦点目标拾取
- cook book
- Unreal Cook Book:创建对象的的几种姿势(C++)
- SubVersion Cook Book
- Plone Cook Book
- python cook book 字符串处理
- My Oracle Cook Book 入门级贴
- python学习笔记-- python cook book 第一章
- Hadoop Cook Book: URLCat Error Info
- 《Spring Boot Cook Book》阅读笔记
- python cook book第三版 读书笔记1(第一章)
- python cook book第三版 读书笔记2(第二章)
- python cook book第三版 读书笔记3(第三章)
- 程序员表白程序
- Python 决策树
- Mirantis OpenStack Fuel9.0离线安装(MOS9.0本地源)
- 使用eclipse调试openfre3.9.3源码
- base64
- Unreal Cook Book:数据驱动
- 有容云:微服务容器化的挑战和解决之道
- thrift-client异步+server非阻塞
- 设置导航栏的背景颜色及属性
- java 静态(static)方法与非静态方法
- OSX下Jenkins安装
- android弹出框之.showAsDropDown(View anchor, int xoff, int yoff):PopupWindow使用详解
- 最近看了很多新闻只愿中华无恙
- commitAllowingStateLoss()