接觸UnrealEngine4大概有快兩周了,從安裝配置到編輯器的熟悉,再到官方實例的學習以及Blueprint的應用。從UE3的UnrealScript和各種classes到UE4現在的發開方式,昨天大概擬定了一個UE4引擎探究的計划,下周會圍繞計划展開研究。

這幾天再看UnrealEngine4的代碼,在寫代碼的過程中有些注意事項跟大家分享一下,也算給自己做個記錄

一. 最好不要自己在UnrealEngine4的工程中添加代碼文件,尤其是.h文件。因為UE4的UnrealHeaderTool會根據UnrealEngine4的反射機制自動生成一個.generated.h文件(應該是UnrealBuildTool需要注冊並做反射用)。添加代碼最好是通過編輯器的創建類向導創建。 如圖例:
如果想用更多的類作為父類的話,可以點擊“右上角”顯示所有類。這樣的話比如我們想做一個管理器類不需要其他邏輯業務功能我們就可以在 顯示所有類 中選擇一個UObject作為父類嘍,配圖如下:
二. UnrealEngine4的C++代碼有套自己的淺規則,如同Unity3D的限制版C#一樣。請各位同學們不要忙着抱怨
,經過了13多年承載和UnrealScript的經驗想必Epic不會自找苦吃把自己開發飯碗搞的很糟糕。目前筆者看到的優點是擁有GC機制,支持Blueprint和編輯器的反射機制,UnrealBuildTool的運行時編譯,還有一些自動化生成功能。閑話不多說,來點干貨先。

1. 聲明類時需要添加UCLASS()宏,可以帶參數用來標示在編輯器中的名稱,暴露類別,顯示類別,類別構造,API類型,Blueprint類型,配置文件=名稱。
例如:
2. 聲明變量時需要添加UPROPERTY()宏,可以帶參數用來標示 在哪里時可見,高級顯示類型,屬於哪個類別,標簽[類似注釋]。
例如:

3. 在XXXX.h文件中引用其他頭文件,請各位同學一定要在把#include "xxx.h" 放到這個XXXX.h文件#include "XXXX.generated.h" 前,不然會報錯呦。
例如:
4. 下周UnrealEngine4就要更新4.1版本了,最近UE4還屬於公測版有不少不穩定的地方,當然官方的更新的速度也很快。在目前這個情況下筆者比較建議采用Unity3D腳本開發的程序結構。做一個自己的邏輯模塊聚合到自己的GameMode或者WordSettings下。再由自己的邏輯模塊去驅動游戲邏輯調用或者驅動UnrealEngine4的其他模塊,開發者把大部分精力放在邏輯模塊的架構上和引擎功能模塊的調度上,不要上來就想去從GamePlay的入口去改引擎底層的邏輯架構。
原因如下:
1). UnrealEngine4引擎目前還不是很健壯,可能會在開發流程和開發模式上做出變動。
2). UnrealEngine4試圖把很多精力放在把大家想Blueprints上去引導,大力推動開發者用
Blueprints完成游戲開發。游戲邏輯和Blueprints關聯很緊密,如果處理不好久有點得不償失了會浪費大量時間和精力。
預祝大家開發順利,歡迎隨時溝通 互相學習和進步
