Unreal Cook Book:資料驅動
在遊戲開發中經常要用到資料驅動,俗稱“策劃拉表”。在虛幻4引擎中,有多種方式處理資料,在這裡我就介紹最常用的兩種。
虛幻引擎內建的表格匯入機制
假設策劃同學有以下這樣一個資料表,用來儲存道具相關的資訊:
| Name | Damage | Price | Desc
|--------|:--------|:--------|:--------|:
| Shanker | 707 | 6395 | Warmongering Gladiator’s Shanker
| Ripper | 814 | 6400 | Tournament Gladiator’s Ripper
| Chopper | 407 | 3976 | Warmongering Combatant’s Chopper
想要匯入這個資料表的話,首先需要定義一個與這個表結構相對應的資料結構。如果使用C++程式設計的話,需要建立一個FTableRowBase的派生類;使用Blueprint的話,就建立一個標準的結構體就可以了。下圖就是我為這個表格建立的Blueprint Struct。
然後,上述表格需要存成CSV格式。然後,你就可以把這個CSV檔案拖放到引擎的Content Browser中了。在資料匯入的設定中,把資料型別設定成我們這個結構體:ItemDef。
最後,我們就可以使用GetDataTableRowNames和GetDataTableRow這兩個藍圖節點來讀取這個表格資料了。具體的藍圖如下:
如果看不清圖片的話,請下載工程檔案吧。:)
虛幻引擎的DataAsset
另外一個常見的需求是我們需要在引擎編輯器中編輯一些常用的資料物件,這些資料並不需要批量配置,但需要方便靈活的修改。在Unity3D中提供了ScriptObject來做這類事請,而在虛幻4中提供了DataAsset,也是同樣的目的,使用方法也十分類似。
首先我們需要建立一個UDataAsset的派生類,用這個類來管理一組資料:
/**
* 演示使用DataAsset來處理資料
*/
UCLASS(Blueprintable, Category="DataDemo")
class UNREALCOOKBOOK_API UQuestDataAsset : public UDataAsset
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "DataDemo")
FString QuestSetName;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "DataDemo")
TArray<FQuestDef> QuestArray;
};
有了這個類之後,在Content Browser的New Asset選單–>雜項裡面選擇“DataAsset”,就會彈出下面這個視窗,視窗中就多出了我們這個類:
-
建立了這個DataAsset之後,就可以用引擎內建的編輯器來編輯它:
-
編輯好之後,我們就可以在Blueprint中使用LoadAsset節點來載入它:
工程檔案&原始碼下載
原始碼下載: https://github.com/neil3d/UnrealCookBook
DEMO執行:Content/DataDemo/DataDemoMap
相關官方文件:https://docs.unrealengine.com/latest/INT/Gameplay/DataDriven/
相關文章
- Unreal Cook Book:神奇的Spline MeshUnreal
- Unreal Cook Book:動態改變材質的顏色等引數Unreal
- Unreal Cook Book:建立物件的的幾種姿勢(C++)Unreal物件C++
- Unreal Cook Book:VR應用中的焦點目標拾取UnrealVR
- 鴻蒙資料驅動鴻蒙
- 資料驅動: 建立資料文化
- 詳解資料驅動
- 資料驅動產業資產產業
- Mybatis資料庫驅動MyBatis資料庫
- Watir資料驅動 - ExcelExcel
- 關於資料庫驅動資料庫
- (六)WPF資料驅動模式模式
- linux cookLinux
- Book Track for Mac書籍線上資料庫Mac資料庫
- 資料驅動背後的“陷阱”
- Selenium–資料驅動(python)Python
- 資料驅動企業增長
- Python 資料驅動工具:DDTPython
- 資料驅動的介面設計
- win10驅動資料夾在哪裡_win10顯示卡驅動在哪個資料夾Win10
- Vue原始碼分析之資料驅動Vue原始碼
- DDT資料驅動效能測試(一)
- 10種資料驅動策略提高CRO
- 高通Camera模組驅動指南資料
- DBVisualizer 新增資料庫JDBC驅動資料庫JDBC
- 探索AntDB:資料驅動時代的引擎
- 影響資料驅動業務目標的大資料挑戰大資料
- vue資料入口initSate開始分析資料驅動更新原理Vue
- 分析:資料化生存,資料驅動未來的今天
- 如何理解自動化測試資料驅動與關鍵字驅動的區別?
- 驅動開發之基本資料結構資料結構
- 如何利用大資料驅動業務增長?大資料
- Vue核心思想:資料驅動、元件化Vue元件化
- 【全棧React】第5天: 資料驅動全棧React
- 資料庫驅動的asp.net treeview資料庫ASP.NETView
- 資料驅動測試之——CSV+TestNG
- 資料驅動測試之—— Excel+TestNGExcel
- 用“資料驅動”幹掉遊戲策劃?遊戲