UE4读取CSV表格配置数据
来源:互联网 发布:python async with 编辑:程序博客网 时间:2024/06/01 07:43
开发游戏时,经常会采用表格文件来存储游戏相关配置数,比如玩家的最大健康值、魔法值等,以及NPC的属性配置等。在Unreal下,无须自己编写表格文件的读取及解析代码,可以直接使用Unreal自带的读取表格数据功能。
下面通过一个简单示例来说明如何通过Unreal来读取CVS格式的表格数据。
表格数据示例如下:
注意,表格第一个单元格必须为空,第一行为每一列的名称,该行数据也是存取每一列数据的唯一标识。表格第一列代表行ID,获取某行数据时需要根据第一列的值标识某一行数据。
首先,创建一个Actor类,头文件中添加表格变量,程序通过该Actor对象来读取表格数据。代码如下:
UCLASS()
class CVSTABLE_API ATableRowSetting : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ATableRowSetting();
// Called when the game starts or when spawned
virtual void BeginPlay() override;
// Called every frame
virtual void Tick( floatDeltaSeconds )override;
UPROPERTY(BlueprintReadWrite,EditAnywhere,Category ="Data SettingActor")
UDataTable* DataTable;
};
然后在该头文件中添加与该CSV文件对应的表格数据结构,该结构从FTableRowBase结构派生,代码如下:
USTRUCT(BlueprintType)
struct FTableSettingData :publicFTableRowBase
{
GENERATED_USTRUCT_BODY()
UPROPERTY(BlueprintReadOnly,Category ="TableSetting")
int32 MAX_HP;
UPROPERTY(BlueprintReadOnly,Category ="TableSetting")
int32 MAX_MP;
UPROPERTY(BlueprintReadOnly,Category ="TableSetting")
int32 MAX_LEVEL;
UPROPERTY(BlueprintReadOnly,Category ="TableSetting")
int32 MAX_XP;
};
注意,该结构中的属性变量必须与CSV文件中第一行中的列名保持一致。
然后在BeginPlay函数中实现表格数据的读取,代码如下:
void ATableRowSetting::BeginPlay()
{
Super::BeginPlay();
if (DataTable !=nullptr)
{
FTableSettingData* dataRow = DataTable->FindRow<FTableSettingData>(TEXT("HUMAN"),TEXT("LookupRow"));
int32 HP = dataRow->MAX_HP;
UE_LOG(LogTemp, Warning, TEXT(" Max HP is %d "),HP);
}
}
至此,读取表格数据的代码工作已经全部完成,接下来需要在编辑器中完成必要的工作。
首先,将创建好的CSV文件拖至编辑器进行导入,导入时,会弹出提示框,选择DataTable,以及刚才定义的表格数据数据结构。
接下来选择刚创建的ATableRowSetting类资源,在属性中可以看到DataTable属性,将导入的CSV文件资源拖至该属性,保存工程并运行即可看到结果。- UE4读取CSV表格配置数据
- 009-UE4中蓝图读取CSV数据表数据
- C++读取CSV表格
- C++读取CSV表格
- unity读取Csv表格
- java读取CSV表格数据放在实体类中的
- 读取.csv文件数据
- Spark读取csv数据
- 读取csv数据
- python读取、写入csv数据:csv模块
- ASP读取CSV文件并用表格输出
- python读取表格csv的方法
- Python csv文件读取(表格文件)
- C语言读取多个csv表格
- 【UE4学习】15_UE4读取CSV文件并使用
- js读取CSV格式数据
- matlab读取csv文件数据
- tensorflow读取数据(csv格式)
- ETL,OLAP,OLTP,DM概述
- 锂电池的六个主要参数
- AndroidAnnotations开发框架使用详解
- 初学c/c++——浅谈引用
- spring获取webapplicationcontext,applicationcontext几种方法
- UE4读取CSV表格配置数据
- Win32 API 串口编程
- Lua中的正则表达式
- 常用sql --- 插入 删除表中的数据
- 如何配置mobiscroll让其支持startMonth和startDay
- Top 10 Java Debugging Tips with Eclipse(java程序员应该知道的10个调试技巧)
- JAVA CAS原理深度分析 concurrent实现
- 素数筛法2
- uiwebview 保存图片到系统相册