如何使用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在移动端上渲染方案进行分析和借鉴了,接下来我应该也会提供这方面的进一步资料。

相关文章
相关标签/搜索