UE4读取scv文件 -- 数据驱动游戏性元素

官方文档连接:http://docs.unrealengine.com/latest/CHN/Gameplay/DataDriven/index.htmlhtml

略懒,稍微麻烦重复的工做,总但愿能找人帮忙一块儿作,可是有人对于稍微一点点的规则他都理解不了(主要也是懒,不想作),因而我从xml来到了scv文件,scv文件能够从Excel文件中导出,也能够在Excel里面编辑,因而帮忙的人也就是须要在Excel里面填入数据便可。c++


1.我定义了这么一张简单的表格,这里的中文才是后面有坑的地方数据结构


2.须要在UE4定义对应的数据格式,这里提供两种方式编码

a.蓝图定义数据结构:spa

b.c++定义数据结构,记得数据结构名称F开头,编译:code

/** Example Data */
USTRUCT(BlueprintType)
struct FExampleData : public FTableRowBase
{
	GENERATED_USTRUCT_BODY()

public:

	/** Name */
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = ExampleData)
	FString Name;

	/** Age */
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = ExampleData)
	int32 Age;

	FExampleData()
	{
		Age = 0;
	}
};
3.将Excel另存为.csv并用Notepad++或者记事本将其转为utf-8的编码格式,导入UE4后会是乱码,将.csv文件拖入UE4中,他会要求你选择一种数据格式,拉开选项就有开始咱们定义的两个选项,一个BP_StructExample, 一个ExampleData,由于定义的同样的格式,这里选择谁均可以。

我这里选择C++定义的结构,方便后面在C++中直接调用数据(蓝图同样de)。xml

4.调用数据:htm

FExampleData* _ExampleData = Example->FindRow<FExampleData>("002", "data002");
GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Red, _ExampleData->Name+ FString::FromInt(_ExampleData->Age));
5.运行结果:

6.假如咱们最开始的Excel不见了,又须要其余人帮忙更改数据,咱们就须要再将UE4的数据导出为CSVblog


7.而后你用Excel打开csv,你就会发现他全部数据都在第一格,或者乱码了,这里咱们须要将他的编码如上改成ANSI,再用Excel打开就能够正常编辑了。ip