优化工作一直是游戏开发中必不可少的一环。尤其对于移动平台而言,高中低档设备众多,为了尽可能满足更多的玩家,性能优化就显得更为重要。因此,Unity 也一直在提升和开发更多的优化工具,并分享最新的优化案例。

在之前的一些文章中,可能更多的是偏重工具本身以及优化理论的一些介绍,对于新手来说有一定的门槛。而这一次,我们将技术支持团队中总结出来的优化流程,常用工具及优化方法分享给大家,希望对大家的优化工作有所帮助。

首先,在本教程的第一部分,我们先介绍下基本的优化流程及常用工具。

基本优化流程介绍

通常来说,我们在做优化的时候遵循如下一个基本流程:

打开网易新闻 查看精彩图片

01确定优化目标

这是首先要明确的事情,比如是做一次针对内存或者渲染的局部优化,还是为确保在低端机上运行流畅进行的全面优化。相信对于任何项目来说,开发时间都是宝贵的,只有明确了目的才能有的放矢,确保项目的有序推进。

02收集数据

通过各种常用或自定义工具收集相关数据。常用的工具包括,Unity Profiler,XCode Instruments,以及优化服务平台 UPR,这一部分我们将在后一节重点介绍。

03解决问题

基于各类分析工具收集的数据,寻找合适的解决方案。当然,从分析数据到解决问题也是优化过程中最不容易的部分,这需要熟悉分析工具中各个指标的含义并深刻理解 Unity 各个系统的运行原理,才能得出最有效的优化方案。而这也是本系列教程会不断通过实例会重复讲述的内容。

常用分析工具介绍

常用分析工具大概可以划分为两大类:综合分析和专项分析。在收集数据进行性能分析的时候,我们常常会先使用综合分析工具对项目进行测试,得出总体评价,再通过专项分析对局部问题进行深入研究。

综合类分析工具

Unity Pofiler,这是最常用的分析工具。在编辑器中可以直接打开使用,可以监控编辑器或者目标平台上的应用。收集的数据包括每一帧中的函数热点,内存使用,物理及音频模块开销等多种关键性能数据。

打开网易新闻 查看精彩图片

具体使用方法可以查看 Profiler 的使用手册,也可以观看视频教程《Unity Profiling 介绍》进行详细的了解。

Profiler 的使用手册:

https://docs.unity3d.com/Manual/Profiler.html

Unity Profiling 介绍:

https://resources.unity.com/unitenow/onlinesessions/introduction-to-profiling

UPR,这是最新的 Unity 性能综合分析平台。在 Profiler 的基础上,增加了更多的性能指标及功能,比如常用的资源检测及 Lua 性能分析。此外,基于 Web 的数据中心,提供了更强大的数据展示及对比功能,且同时对接性能报告解读服务。因此,该平台也逐渐成为我们在帮客户做优化时主要使用的工具。

打开网易新闻 查看精彩图片

当然该工具也是对广大开发者开放的,详细使用方法可以查看使用手册。

UPR 官网:

https://upr.unity.cn

UPR 使用手册:

https://upr.unity.cn/instructions/instructions

专项分析工具

Frame Debugger,用于展示每个帧如何由单独的绘图调用构成,以及相应的着色器属性,可以帮助你排查渲染流程是否正确,是否正确合批。

Frame Debugger:

https://docs.unity3d.com/Manual/FrameDebugger.html

打开网易新闻 查看精彩图片

平台相关工具,iOS 和 Android 都提供自身的性能测试工具:Xcode InstrumentsAndroid Profiler,这些工具可以侦测更详细的内存及 GPU 信息。比如 Xcode Instruments 也提供了 Frame Capture 的功能,可以用于查看每一帧详细的绘制流程,以便判断是否存在多余而耗时的绘制。

打开网易新闻 查看精彩图片

此外,某些硬件还可以提供了额外的分析工具,例如,Arm Mobile Studio、英特尔 VTune 和 Snapdragon Profiler。有关详细信息,请参阅教程《基于 Unity 应用程序的性能分析》。

基于 Unity 应用程序的性能分析:

https://learn.unity.com/tutorial/profiling-applications-made-with-unity#5c7f8528edbc2a002053b5b8

开启性能优化之旅

通过上面的介绍,相信大家应该对优化流程和工具有了初步的了解。也可以自己尝试下使用工具来进行数据的收集,看看都有哪些性能缺陷。需要注意的是,选择适配机型范围内性能较差的设备进行测试和优化,这样才能最大限度发现性能瓶颈在哪里。当然也可以增加性能自适应的功能,对高端设备开放更多的特效以及更高的分辨率。

在这里,我们也制作了一个利用 UPR 工具进行数据收集的教程,帮助大家快速上手最新的优化工具。

 优化实践系列教程 | 新手入门:优化的基本流程以及Unity分析工具介绍
打开网易新闻 查看更多视频
优化实践系列教程 | 新手入门:优化的基本流程以及Unity分析工具介绍

教程中使用的项目已上传到 PlasticHub,大家可以自行下载学习:

https://plastichub.unity.cn/unity-tech-cn/BoatAttack_UPR_Tutorial

打开网易新闻 查看精彩图片

在下一篇教程中,我们会为大家带来关于渲染的优化经验分享。敬请期待。

大家也可以通过“阅读原文”,跳转 Unity 中文课堂关注成亮老师学习。

Unity 官方微信

第一时间了解Unity引擎动向,学习最新开发技巧