Unreal Engine 4:数据存储

版权声明:本文为燕良原创文章,转载请注明出处:http://blog.csdn.net/neil3d

在游戏开发中经常要用到数据驱动,俗称“策划拉表”。在虚幻4引擎中,有多种方式处理数据,在这里我就介绍最常用的两种。


虚幻引擎内建的表格导入机制

假设策划同学有以下这样一个数据表,用来存储道具相关的信息:

NameDamagePriceDesc
Shanker7076395Warmongering Gladiator’s Shanker
Ripper8146400Tournament Gladiator’s Ripper
Chopper4073976Warmongering Combatant’s Chopper

想要导入这个数据表的话,首先需要定义一个与这个表结构相对应的数据结构。如果使用C++编程的话,需要创建一个FTableRowBase的派生类;使用Blueprint的话,就创建一个标准的结构体就可以了。下图就是我为这个表格创建的Blueprint Struct。
ItemDef

然后,上述表格需要存成CSV格式。然后,你就可以把这个CSV文件拖放到引擎的Content Browser中了。在数据导入的设置中,把数据类型设置成我们这个结构体:ItemDef。
CSV导入设置

最后,我们就可以使用GetDataTableRowNames和GetDataTableRow这两个蓝图节点来读取这个表格数据了。具体的蓝图如下:
BP_DataDriven
如果看不清图片的话,请下载工程文件吧。:)


虚幻引擎的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”,就会弹出下面这个窗口,窗口中就多出了我们这个类:

New Data Ssset
- 创建了这个DataAsset之后,就可以用引擎内置的编辑器来编辑它:
Edit Data Asset

  • 编辑好之后,我们就可以在Blueprint中使用LoadAsset节点来加载它:
    Load Data Asset

相关官方文档:https://docs.unrealengine.com/latest/INT/Gameplay/DataDriven/

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值