zoukankan      html  css  js  c++  java
  • UE4读取scv文件 -- 数据驱动游戏性元素

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

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


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


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

    a.蓝图定义数据结构:

    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.运行结果:

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


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

  • 相关阅读:
    腾讯开放平台 手机QQ登录 错误码:110406 解决办法
    比较酷的安卓软件
    Top 10 Methods for Java Arrays
    Feathers UI 性能优化
    Starling中通过PivotX 和 PivotY 修改原点
    Adobe AIR 中为不同尺寸和分辨率屏幕适配
    Feathers组件的宽度或高度属性,为什么我得到的值是0
    "Type Coercion failed" Error in FlashBuilder 4.7
    正则表达式中的特殊字符
    单体内置对象 Global 和 Math
  • 原文地址:https://www.cnblogs.com/liang123/p/6325851.html
Copyright © 2011-2022 走看看