首页 > 其他分享 >UE4读取scv文件 -- 数据驱动游戏性元素

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

时间:2022-12-13 14:37:35浏览次数:64  
标签:定义 ExampleData -- Age Excel 游戏性 UE4 scv


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

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


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

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

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

a.蓝图定义数据结构:

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

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


/** 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)。

4.调用数据:

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

5.运行结果:

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

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

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

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

标签:定义,ExampleData,--,Age,Excel,游戏性,UE4,scv
From: https://blog.51cto.com/u_15911199/5934036

相关文章

  • 以3n 为单位进行循环
     <template       v-for="(item,index)inMath.ceil(warnInfo.length/3)"       :key="index+'ca'"      >   ......
  • Winform DevExpress控件库(三) 使用NavBarControl控件定制导航栏
    NavBarControl控件:主要作用是制作包含多个选项组并且每个组里包含多个子选项的导航栏;位于工具箱->Navigation&Layout(导航栏与布局类控件)在工具箱输入名称NavBarControl......
  • ThreadLocal(2) - FastThreadLocal
    FastThreadLocal该类位于netty的util包下,netty的线程都使用的是FastThreadLocal而不是jdk的ThreadLocaljdk的ThreadLocal使用Thread类的ThreadLocalMapnetty的Fas......
  • UE4 读取本地图片
    参考链接:​​https://answers.unrealengine.com/questions/235086/texture-2d-shows-wrong-colors-from-jpeg-on-html5-p.html​​我这里,不能将图片全放工程之中,需要在外部......
  • ExcelToObject.NPOI 两行代码导出Excel报表、读取Excel数据
    简介作为一个dotnet开发者,经常面对业务系统中大量报表导入导出,经常写了一堆的重复代码。最近发现一个操作excel的神器:ExcelToObject.NPOI,两行代码就能导出一个报表,两行代......
  • 【Unity】超级坦克大战(二)游戏流程
    更新日期:2020年7月9日。项目源码:在终章发布索引​​本章最佳实践​​​​正式开始​​​​登录流程​​​​准备流程​​​​关卡选择流程​​​​闯关流程​​​​启用所......
  • Windows 7 Goodies in C++: Taskbar Progress and Status Indicators
    Windows7GoodiesinC++:TaskbarProgressandStatusIndicatorsDownloaddemoproject-215KBContentsIntroductionUsingtheNewTaskbarInterfaces......
  • Unity UGUI图文混排(五) -- 一张图集对应多个Text
    继上一篇说的更新了一张图集对应多个Text的功能,为了节省资源嘛这里,但是也没有舍弃之前的一个Text一个图集,因为我感觉应该两个都有用,于是我重新写了一个脚本1.其实大体跟前面......
  • 【Unity】超级坦克大战(三)登录界面
    更新日期:2020年7月9日。项目源码:在终章发布索引​​本章最佳实践​​​​正式开始​​​​创建UI编辑场景​​​​创建登录界面UI实体​​​​创建登录界面UI逻辑类​​​......
  • Effective Java-2. 当构造方法参数过多时使用builder模式
    背景静态工厂和构造方法不能很好的拓展到很多可选参数的场景,因为参数过多的时候,调用其构造方法不太能知道每个位置参数的含义,容易出bug那么为这个类编写什么样下的构造方......