UE4數據驅動開發總結

 

1.BP CDO/Instance

可以在c++中定義一個結構體

然後遍歷結構體數組去獲取數據

2.c++ ConstructHelpers

3.DataTable

然後遍歷每個RowName獲取每一行數據

對於數據表也可以導出到csv,json 格式數據

將數據錶轉出json後,直接在文本里面編輯,更加快捷方便

使用數據表的優缺點

這裏值得說下的是:如果數據表load進來,那麼其表中的所有藍圖,mesh等等資源也都要加載進來,那麼是否會產生一瞬間的卡頓呢,這個要權衡

4.CompositeDataTable

作用是將多個數據表放到一起,在一個數據表中去讀

5 DataAsset

視頻中看到這個函數,其實函數就是獲取該類的CDO

使用數據資產的優缺點

可用BulkEdit快速編輯多個DataAsset是指這樣批量編輯

如何讀取DataAsset?

先繼承自DataAsset

調用異步去加載資源

或者像上面一樣c++暴露一個Get靜態方法,通過loadObject來load一個絕對路徑的DataAsset,然後在藍圖中用Get靜態方法直接調用裏面的變量,使用AssetData優點是不會像DataTable一樣如果表中有很多Mesh會一下子全部加載進來,缺點也很明顯,如果有大量配置對象,需要創建大量的DataAsset

6 CurveTable

相比於DataTable,屬於輕量級的數據表,只能配置一些float數據,好處是能通過csv導入

比如將csv文件直接拖動到ue4中

可以轉成CurveTable

使用該節點去讀取CurveTable

7.Custom WorldSettings

在項目設置裏面有這樣一個選項,可以配置默認的各種藍圖類的默認基類

比如,我們將WorldSettingsClass的默認類改成一個自己寫好的類,那麼就可以添加自定義的屬性放到WorldSettings

8.Settings(ini)

ue4幫我們做好了一個類,我們繼承UDeveloperSettings即可

在ue4編輯器中會識別到

在遊戲目錄下也同樣會生成一個ini文件

如何讀取ini文件的數據呢?

ini文件在引擎啓動時被讀取成一個UObject對象,直接獲取CDO即可

9.Raw: txt/csv/json/xml

使用這種方式的優缺點:

讀取txt輸出成字符串的c++方法:

讀取csv變成DataTable的方法:

讀取Json的方式

小提示:

在ue4的編輯器控件中

有GetEditorWorld和GetGameWorld兩個節點,看是在編輯器中還是在遊戲中傳入不同的WorldContext

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章