如何使用Xcode分析調試在真機運行的UE4 IOS版遊戲

寫本文的是由於UE4 官方文檔雖然也有,但主要講的是是用UE4Editor把遊戲打成一個IPA包的形式發佈的方法前端

而對於想經過Xcode分析UE4的渲染流程來學習或優化的朋友,那官方文檔的資料仍是不夠的,這裏是總結一下在Mac上用Xcode對UE4 ios app作Analyze的教程。ios

要在Xcode裏調試或分析,直接下載編輯器是不行的,首先仍是要有UE4的源代碼,從官方或民間下載均可以,通常是1個UnrealEngine包,2個Required包,先解壓UnrealEngine,再把Required裏的內容分別拖到解壓後的UnrealEngine文件夾裏,Required1和Required2由於有同名文件夾,記得選擇keep newer 或 merge(OSX的版本不一樣),就能夠把3個包的內容都拷貝好。而後運行 GeneragteProjectFiles.command,稍等就能夠生成出UE4.xcodeproj的Xcode工程了。xcode

用Xcode打開工程,直接Build UE4Editor,這個過程根據你Mac設備性能的不一樣能夠要10~30分鐘app

這個時候你還須要一個進行測試的工程文件,進入MarketPlace,下載這個比較經典的Sun Temple工程好了編輯器

進入這個頁面,下載完成後,就能夠建立工程了性能

若是是編輯器發佈的方式,這裏打開就能夠按官方教材繼續修改打包發佈了,但若是須要代碼作調試和分析的話, 這裏能夠跳過學習

回到咱們UE4源代碼的Xcode工程,運行編輯器,而後在工程建立頁面,會看到在MarketPlace建立的工程文件,選擇SunTemple工程進入測試

若是編輯器和工程版本不同,可能須要進行版本轉化,建議小版本號,如4.5.0~4.5.x能夠跳過或再開一份拷貝。優化


這裏還須要注意一點的是,如圖下圖,你編譯出來的UE4Game。在一些版本里可能會是UE4Ggame-IOS-Debug一類的名字,UE4在Xcode或編輯器裏打包時調用的是UE4Ggame,不然工程會打包失敗
因此能夠先在編輯器裏打包試試,若是提示找不到UE4Game再進到這個目錄更名。ui

 

在官方教程裏,提到能夠在生成的工程文件.uproject上右鍵選擇Generate Xcode Project,但這樣生成的Xcode工程是不帶任何引擎源碼的,沒法起到調試做用

正確的方法,應該是先進入編輯器,在File->Package Project的頁面裏,選擇Packaging Setting.

這裏能夠選擇是渲染器使用的圖形API是GLES2仍是Metal

保存,而後選擇Refresh Xcode Project,這樣就會生成帶shader,ue4引擎源碼的Xcode項目工程文件了。

 

從工程目錄進入SunTemple工程,如圖,選擇UE4Game-iOS,並在真機上運行,UE4默認的運行機制,其實就是一個統一的UE4Game的前端+資源包的形式

爲了能在Xcode上捕獲GPU信息,須要進入UE4Game的Scheme裏進行設置

這由於UE4同時支持GLES和Metal的,Xcode沒法判斷你使用的到底是哪一個API,因此在GPU Frame Capture裏必須強制爲GLES,才能夠成功進行分析。

在真機上運行UE4Game,而後點擊到Show the Debug Navigator的圖標,就能夠對當前運行UE4 app進行GPU分析了 

點擊Analyze按鈕後稍等片刻,Xcode會捕獲Frame的整個繪製流程,並可經過滑動滑竿來瀏覽。

同時也能夠查看繪製調用部分使用的shader代碼,並支持動態修改調試

而Debug的方式則和平時調試同樣,在指定的代碼部分放置斷點就能夠了。解決了這個問題,就能夠針對UE4在移動端上渲染方案進行分析和借鑑了,接下來我應該也會提供這方面的進一步資料。

相關文章
相關標籤/搜索