UE4 游戏中csv配置文件使用

本文章由cartzhang编写,转载请注明出处。 所有权利保留。
文章链接: http://blog.csdn.net/cartzhang/article/details/76549463
作者:cartzhang

一、 导入*.csv

怎麼使用UE4來實現游戏配置呢?

XML是我们常用的格式,但是对于虚幻4的导入,目前可以支持的Json,csv,自己写代码读取XML也咩有问题。

这里说下读取CVS的配置。

第一步:

建立一个.csv格式表,可以通过excel来另存为*.csv.

要注意,第一行的第一列空着。
像这样:

这里写图片描述
图0

第二步

在UE4项目中,在你想保存的content browser下的文件夹中,右键蓝图选择Structure,命名为ExampleCV_Struct(自己随意)

这里写图片描述
图1

双击打开,

添加新的变量,这里要与csv表格中的第一列名称保持一致,否则在导入
时候会说找不到某个名字。

这里写图片描述
图2

第三步

右键导入你想要导入的.cvs文件,

这里写图片描述
图3

会弹出对话框,让你选择Data table Row type,选择刚才创建的那个ExampleCV_Struct

这里写图片描述
图4

搞定了。打开看看,就是你要的数据了。

是不是很方便啊。

这里写图片描述
图6

重新加载

若是修改了*.cvs 文件,若没有添加列,只需要重新导入即可。

这里写图片描述
图5

真是超级轻松方便啊。

二、 怎么使用呢?

要想在任意类中使用这些数据,我的想法是把他们存放到Gamemde中,然后可通过gammode来获取。

在构造中实现读取,

这里写图片描述
图8

要注意类型,是数组类型的ExampleCV_Struct。

获取某一行数据,用一个函数来实现。

这里写图片描述
图8

在其他蓝图对象中调用,只要可以找到Gamemode就可以使用。

获取某个一行数据。

这里写图片描述
图9

这次就介绍这么多了。

三、部分资源下载地址

cvs 样例 下载地址:

https://docs.unrealengine.com/latest/attachments/Gameplay/DataDriven/Example.xlsm

文章图片地址:
https://github.com/cartzhang/cartzhang.github.io/tree/master/images/Ue4csvGameConfi/UE4_CVS

参考

【1】https://docs.unrealengine.com/latest/INT/Gameplay/DataDriven/index.html
【2】DataTables”>https://wiki.unrealengine.com/Using_excel_to_store_gameplay_data-_DataTables
【3】https://www.youtube.com/watch?v=WLv67ddnzN0

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 在UE4保存CSV文件主要分为两个步骤:准备数据和保存文件。 首先,你需要准备好要保存为CSV格式的数据。可以使用TArray或TMap等UE4的容器类来存储数据。以TArray为例,假设你有一个简单的结构体来表示每行数据: ```cpp struct FCSVRow { FString Name; int32 Age; float Height; }; ``` 然后,你可以创建一个TArray来存储多行数据: ```cpp TArray<FCSVRow> CSVRows; // 添加数据至CSVRows FCSVRow Row1; Row1.Name = TEXT("小明"); Row1.Age = 20; Row1.Height = 175.5f; CSVRows.Add(Row1); FCSVRow Row2; Row2.Name = TEXT("小红"); Row2.Age = 25; Row2.Height = 160.0f; CSVRows.Add(Row2); ``` 接下来,你可以使用UE4的FFileHelper类的静态函数来保存CSV文件: ```cpp FString CSVText; for (const FCSVRow& Row : CSVRows) { CSVText += FString::Printf(TEXT("%s,%d,%f\n"), *Row.Name, Row.Age, Row.Height); } FString SavePath = FPaths::ProjectDir() + TEXT("Saved/CSVFile.csv"); FFileHelper::SaveStringToFile(CSVText, *SavePath); ``` 在上述代码CSVText会存储整个CSV文件的文本内容,循环遍历CSVRows将每行数据转化为文本,并使用Printf函数格式化为CSV格式的字符串。最后,使用SaveStringToFile函数将CSVText保存到指定路径。 请注意,保存文件需要指定一个路径。在上述代码,SavePath为CSV文件的保存路径,可以根据实际需求进行更改。 完成上述步骤后,运行UE4项目即可保存CSV文件。 ### 回答2: 在UE4保存CSV文件有多种方法。首先,我们可以使用CSVWriter类来创建和保存CSV文件。这个类允许我们将数据以逗号分隔的格式写入文件。 首先,我们需要包含"CSVWriter.h"头文件,并创建一个CSVWriter对象。然后,我们可以使用CSVWriter的AddRow函数将数据逐行添加到CSV文件。 例如,我们可以创建一个名为"mydata.csv"的文件,并将一些数据写入它: ```cpp #include "CSVWriter.h" void SaveToCSV() { FString FilePath = FPaths::ProjectDir() + FString("mydata.csv"); TCSVWriter<> CSVWriter(FilePath); CSVWriter.AddColumn(TEXT("Name")); CSVWriter.AddColumn(TEXT("Score")); CSVWriter.AddRow({ TEXT("John"), TEXT("90") }); CSVWriter.AddRow({ TEXT("Jane"), TEXT("85") }); CSVWriter.AddRow({ TEXT("Tom"), TEXT("95") }); CSVWriter.Save(); } ``` 这将在项目目录下创建一个名为"mydata.csv"的文件,并将以下数据写入其: ``` Name,Score John,90 Jane,85 Tom,95 ``` 另一种方法是使用UE4的FFileHelper类来保存CSV文件。这个类提供了一些静态函数来处理文件操作。 我们可以使用FFileHelper::SaveStringToFile函数将CSV数据直接保存到文件。例如: ```cpp #include "FileHelper.h" void SaveToCSV() { FString FilePath = FPaths::ProjectDir() + FString("mydata.csv"); FString CSVData = TEXT("Name,Score\nJohn,90\nJane,85\nTom,95"); FFileHelper::SaveStringToFile(CSVData, *FilePath); } ``` 这将创建一个名为"mydata.csv"的文件,并将相同的数据写入其。 无论使用哪种方法,保存CSV文件都是相对简单的,在UE4可以方便地进行操作。 ### 回答3: 使用Unreal Engine 4(UE4)保存CSV文件需要遵循以下步骤: 1. 首先,确保项目包含了所需的文件读写功能。在UE4编辑器的“编辑”菜单下选择“插件管理器”,然后在插件管理器搜索“File Save Plugin”并启用它。这个插件会添加一些额外的文件读写功能。 2. 在UE4,创建一个蓝图或C++类来实现保存CSV文件的功能。选择一个合适的类,例如游戏模式类或一个自定义的蓝图类。 3. 在类,创建一个保存CSV文件的函数。对于蓝图,可以使用“新增自定义事件”来创建一个新的函数。对于C++类,可以创建一个新的公有函数。 4. 在函数内部,使用文件读写功能来创建和保存CSV文件使用FFileHelper类的一些函数,如FFileHelper::SaveStringToFile(),将要保存的CSV数据以字符串形式保存到磁盘上的指定位置。 5. 使用FPaths类的一些函数,如FPaths::ProjectSavedDir(),来获取项目的保存路径。然后根据需要创建一个保存CSV文件的完整路径。 6. 创建CSV文件的头部,包含列的标题或属性名称。这通常是CSV文件的第一行,在保存CSV文件之前作为字符串变量添加到要保存的字符串。 7. 将CSV数据按行添加到要保存的字符串。确保将每个字段用逗号分隔,并且每个行末都有一个换行符。 8. 最后,使用FFileHelper::SaveStringToFile()函数将保存的字符串写入到指定路径的CSV文件。这将把CSV文件保存到项目的保存路径。 以上是在UE4保存CSV文件的步骤。可以根据实际需求对代码进行修改和扩展。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值