UE4讀取scv文件 -- 數據驅動遊戲性元素

官方文檔連接:http://docs.unrealengine.com/latest/CHN/Gameplay/DataDriven/index.htmlhtml

略懶,稍微麻煩重複的工做,總但願能找人幫忙一塊兒作,可是有人對於稍微一點點的規則他都理解不了(主要也是懶,不想作),因而我從xml來到了scv文件,scv文件能夠從Excel文件中導出,也能夠在Excel裏面編輯,因而幫忙的人也就是須要在Excel裏面填入數據便可。c++


1.我定義了這麼一張簡單的表格,這裏的中文才是後面有坑的地方數據結構


2.須要在UE4定義對應的數據格式,這裏提供兩種方式編碼

a.藍圖定義數據結構:spa

b.c++定義數據結構,記得數據結構名稱F開頭,編譯:code

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

4.調用數據:htm

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

6.假如咱們最開始的Excel不見了,又須要其餘人幫忙更改數據,咱們就須要再將UE4的數據導出爲CSVblog


7.而後你用Excel打開csv,你就會發現他全部數據都在第一格,或者亂碼了,這裏咱們須要將他的編碼如上改成ANSI,再用Excel打開就能夠正常編輯了。ip

相關文章
相關標籤/搜索