Unity教程之-Unity3d移动平台性能优化专题(四):设置性能级别

 

上篇文章《Unity教程之-unity3d移动平台性能优化专题(三):减少面数》,本篇文章我们继续探讨优化策略:

为不同性能的设备设置不同的性能级,这一条与其说是优化,不如说是折中。

为了表现基本的效果,即使你不停优化,有些硬性的东西在哪里,比如模型的精细程度,特效的绚丽程度。如果你要牺牲这种东西,可能会让游戏本身的质量 下降。那么是不是就啥都不管那些性能差的机子了。建议还是不要放弃,相信大部分人还是有老式机子的,而且正因为机子差,能玩的游戏不多,如果你的游戏还能 够跑起来,绝对是一个噱头,一种优势。

ok,说了那么多,就设想一下怎么让你的游戏在各个方面舍去然后才能跑在老设备上吧。首先你肯定需要找一台机子,然后要进行性能分析,查找到对应的瓶颈。 这里注意,u3d自带的性能分析器可能无法让你找到真正的瓶颈,因为你只能发现是渲染很费时,但你却不知道到底是啥原因引起的,这时候你需要找到对应的显 卡厂商提供的工具,这种工具一般能够显示非常详细的信息。

我列举几种常见的方案。

1.脚本方面,这个其实已经不太有空间了,而且我相信对于大部分低端设备而言,都是大屏引起的性能问题,然后cpu和gpu却比较差。真的要有的话,就是你脚本可以设置渲染质量,但这个直接导致了画面质量下降,所以不是首选。

2.特效方面。建议将大部分卡的特效直接关闭,没有必要简化特效啥的适应低端设备,性价比低,而且效果很一般。发现设备不行,就关闭不重要的特效,设置重要的特效。毕竟能玩才是重点。

3.模型方面。如果准备两套模型那就太累了,所以我建议模型还是要尽量保证质量的情况下做一些简单的限制,包括面数,骨骼数,顶点数等等。

4.UI方面,要注意不仅仅是drawcall,在低端设备上,drawcall低必然是牺牲其他导致的。在高端设备上,这种牺牲是忽略不计的,但低端设 备,反而你适当增加drawcall会得到性能提升。哈哈,这个一般人估计不会注意到吧。如果你用显卡的性能工具看,你就会发现其实有很多除了 drawcall以外的性能指标。

5.shader方面,这个其实和透明的物体关系最大,因为透明就是导致渲染多次的真凶。所以可以考虑在低端设备上使用最简单的shader,同时取消shader方面的各种变化。

除了这些常见的点,其实还有大量的你可以根据你的游戏自己的类型进行优化,比如是不是可以让摄像机看到的范围变小,可以不可以让帧率适度下降,甚至可以考虑取消某些模型的显示等等。

好了,本篇unity3d教程到此结束,下篇我们再会!