很多天沒更新微博了,最近工作比較忙在支持一個UE3的項目,EasyKit架構也在無縫地圖的方面設計更多解決方案(UnrealEngine4中自帶一個seamless travel,主要涉及到廣播和LevelStreaming)。昨天查資料發現好多人在問如何編譯客戶端。好吧,如果不了的確要花點時間研究如何編譯客戶端。
如果同學們想用VisualStudio編譯客戶端來查看,打包成游戲后程序的運行機制需要按照以下幾個步驟方可成功編譯Client。(編輯器中跟代碼會跟實際游戲客戶端代碼運行步驟不同,因為再編輯器預覽游戲使用了很多EditorEngine的接口和很多PlayLevel這樣的功能類。比如:如果同學們想了解一下實際游戲的入口在哪里,如何在初始化游戲的時候加入自己的模塊,在編輯器的運行代碼中是很難找到接入點的。)
1.同學們必須要從GitHub下載UnrealEngine4的源碼。(這句好像是廢話,不過還是想說一下因為有很多同學一直認為用UE4創建一個帶C++的工程那就叫源碼版)
2.用UnrealEngine4源碼先編譯一個Editor隨便哪個版本(我編譯的是Developer Editor)。然后編輯我們自己想要調試的游戲。只想了解游戲運行時UE4引擎處理流程的同學可以用引擎工程創建向導的模板示例。
3.編輯完畢后需要點擊編輯器上方Play右邊的Launch生成游戲程序文件。(必要條件,如果不進行Launch的話無法調試游戲) 附圖:
4.再用VisualStudio的工程編譯Client便可調試游戲啦。這種解決方案只代表自己的觀點,如果有同學有更好的方法歡迎交流,有錯誤歡迎指正,我會及時核對后進行修改

遇到過的問題:
UnrealEngine4編輯器的編譯環境跟客戶端的編譯環境不太一致,有些頭文件在未Launch游戲文件前是無法找到的。筆者昨天在做場景管理器的時候需要用到LevelStreaming.h這個頭文件以便引用一個Action做異步加載。但是連接時總提示:無法找到外部符號。通常出現“我發找到外部符號”的問題都是只有聲明沒有定義,或者有些庫文件不匹配。但是Launch后就可以找到了,所以在調試和對客戶端編程時需要同學們先Launch下自己的游戲呦
