1.通過數(shù)據(jù)表(Data Table)功能處理數(shù)據(jù)。
官方文檔:中文官方文檔
工具:Visual Studio埠胖、虛幻4糠溜、Office
數(shù)據(jù)表就是以有意義且有用的方式將各種相關的數(shù)據(jù)歸類的表格直撤, 其中,數(shù)據(jù)字段可以是任何有效的 UObject 屬性谋竖,包括資產(chǎn)引用。
在設計師將 CSV 文件導入數(shù)據(jù)表前圈盔,程序員必須創(chuàng)建行容器以指示引擎如何解釋數(shù)據(jù)豹芯。 這些數(shù)據(jù)表包含了列名,這些列名和基于代碼的UStruct結構以及它的(子)變量一一對應驱敲, 這個UStruct的結構必須繼承自FTableRowBase才可以被導入器辨識。
首列應命名為“Name”宽闲,并包含用于訪問每行以供游戲使用的名稱众眨。隨后的列 具有標題的變量名,而且同一列的下方為行/列交叉點的數(shù)據(jù)容诬。鑒于此格式娩梨, 每一行將與繼承自 FTableRowBase 的結構一一對應。
官方示例
例如览徒,以下顯示了升級經(jīng)驗數(shù)據(jù)的定義和向游戲提供數(shù)據(jù)的 CSV 文檔:
CSV:
2.通過數(shù)據(jù)曲線
數(shù)據(jù)曲線的工作方式與數(shù)據(jù)表相似狈定, 但數(shù)據(jù)曲線僅支持浮點型數(shù)據(jù)。和數(shù)據(jù)表一樣习蓬,首列命名為“Name”纽什,并包含用于訪問每行 以供游戲使用的名稱。首列后的每個列標題存儲 用于繪制曲線的 X 軸變量躲叼。該標題下的數(shù)據(jù)為給定行的 Y 軸值芦缰。鑒于此格式, 每一行將與一個代碼可訪問并沿其插入數(shù)據(jù)的曲線相應枫慷。
數(shù)據(jù)表示例2:
CVS:
Id,HP,Icon,BlueprintKey
1,100,Texture2D'/Game/FirstPerson/Textures/Test.Test',Class'/Game/FirstPerson/BP_DataTableTest.BP_DataTableTest_C'
2,200,Texture2D'/Game/FirstPerson/Textures/Test.Test',Class'/Game/FirstPerson/BP_DataTableTest.BP_DataTableTest_C'
其中BP_DataTableTest是一個繼承自AActor的一個藍圖類让蕾,BP_DataTableTest_C是實際生成的藍圖類浪规。
對應的C++代碼如下所示:
代碼編譯完成后,我們就可以把剛才創(chuàng)建好的csv文件導入到編輯器中探孝,通過Import導入文件笋婿,導入后如下圖所示:
在藍圖中的用法
在上述數(shù)據(jù)表示例中,引用的資產(chǎn)為延遲加載資產(chǎn)(TAssetPtr處理此事項顿颅,我們最終使用了LoadAsset和Load Class Asset來實現(xiàn)異步加載萌抵,注意右上角的時鐘圖標)。如果資產(chǎn)字段類型設置為UTexture元镀,則將在加載數(shù)據(jù)表時加載所有資產(chǎn)绍填。