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

来源:互联网 发布:软件模块化设计 实例 编辑:程序博客网 时间:2024/06/05 11:01

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

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


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


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

a.蓝图定义数据结构:

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

[cpp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. /** Example Data */  
  2. USTRUCT(BlueprintType)  
  3. struct FExampleData : public FTableRowBase  
  4. {  
  5.     GENERATED_USTRUCT_BODY()  
  6.   
  7. public:  
  8.   
  9.     /** Name */  
  10.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = ExampleData)  
  11.     FString Name;  
  12.   
  13.     /** Age */  
  14.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = ExampleData)  
  15.     int32 Age;  
  16.   
  17.     FExampleData()  
  18.     {  
  19.         Age = 0;  
  20.     }  
  21. };  
3.将Excel另存为.csv并用Notepad++或者记事本将其转为utf-8的编码格式,导入UE4后会是乱码,将.csv文件拖入UE4中,他会要求你选择一种数据格式,拉开选项就有开始我们定义的两个选项,一个BP_StructExample, 一个ExampleData,因为定义的一样的格式,这里选择谁都可以。

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

4.调用数据:

[cpp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. FExampleData* _ExampleData = Example->FindRow<FExampleData>("002""data002");  
  2. GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Red, _ExampleData->Name+ FString::FromInt(_ExampleData->Age));  
5.运行结果:

6.假如我们最开始的Excel不见了,又需要其他人帮忙更改数据,我们就需要再将UE4的数据导出为CSV


7.然后你用Excel打开csv,你就会发现他所有数据都在第一格,或者乱码了,这里我们需要将他的编码如上改为ANSI,再用Excel打开就可以正常编辑了。

本文转自:http://blog.csdn.net/qq992817263/article/details/52637612

0 0
原创粉丝点击