將 Blueprint 專案遷移到 C++ 的現實邊界
將邏輯保留在 C++ 中,將小部件設計保留在 WBP 中
該部落格上撰寫的文章是出於教學目的而創建的。 另外,文章中的資訊可能不正確,請謹慎。
將藍圖專案移至 C++ 時,所有.uasset設定消除目標很容易。 然而,行動遊戲邏輯和UI佈局的成本是不同的。
適合遷移到 C++ 的部分
- 儲存和載入規則
- 戰鬥和動作驗證
- 資料處理及常用功能
- 代理連接
- 子系統和框架類
- 從多個藍圖複製的邏輯
在ProjectDT中,副作用是在處理正確答案後執行的。UDTUISubsystem::ProcessSolvedProblem()集。 在ProjectTB中,C++函數負責購買、安裝和部署驗證。
部分最好留給 WBP
- 小部件樹佈局
- 設計師經常更改尺寸和顏色
- Widget Animation
- 圖像和字體等表達資產
- 放置在關卡中的視覺元素
將此部分轉移到 C++WidgetTree您需要將其編寫為程式碼或編寫 Slate。 有可能,但是修改的速度和設計者的可操作性會有很大差異。
組織公共和私人文件夾
ProjectDT 建立一個向外部公開的標頭。Public,實現cppPrivate搬遷至
Source/ProjectDT/
├─ Public/
│ ├─ System/
│ └─ Investigate/
└─ Private/
├─ System/
└─ Investigate/
如果只將模組外使用的合約放在Public中,Include關係就變得清晰起來。 無需在 Public 中保留內部實作的標頭。
從 Blueprint 遷移到 C++ 並不是全部或全部。 對於大多數專案來說,在 C++ 中收集的規則和狀態的邊界以及作為設計外殼維護的 WBP 是現實的。