Unity 性能优化
引言
随着时代的发展,用户对于游戏的质量要求越来越高,但是硬件的限制又使得游戏质量不可能无限制拔高,只能在有限的硬件条件下尽可能的提升游戏质量,因此游戏的性能优化可以说是大型游戏的重中之重。
在本文中我将介绍下怎么来优化Unity的游戏性能,如果不妥,请大佬们指正。
影响性能的因素
1 显卡(GPU)
如果你的游戏体验不好,帧数过低,那基本可以说原因都是出在显卡上。显卡之所以这么重要,主要在于它的GPU和显存,毕竟显卡的计算能力基本都体现在GPU上,类似于我们电脑里的主板和CPU之间的关系。,所以GPU在处理运算数据时,如果性能不足,那么非常容易形成掉帧。另外显卡的显存也很重要,现在的3D游戏对硬件性能要求越来越高,显存没有3G以上根本都不好意思玩3D游戏。可以把显卡理解成为一块主板的缩影,有CPU有内存,独立运行,处理图形相关的信息。所以显卡性能参数就相当于一台电脑的主机配置,其重要性可想而知。目前高端显卡是1060以上,主流的是950这一层面的。另外值得一提的是显示器,显示器对显卡负载有影响,显示器的分辨率越高,同一时间内显卡需要运算处理的数据量就越大,也就是工作负载越大,所以相同的配置,可能你玩1080p的就很顺畅,但换到2K甚至4K显示器上,就出现掉帧卡顿等现象,是很正常的。
2 CPU
当下流行的大型3D游戏,对硬件性能要求的侧重也有所不同,大部分只是对显卡和内存要求较高,而另一部分则对CPU要求格外的多,想CSGO这样的游戏,就是3D游戏中出了名的“吃U”大户,所以当你玩其他游戏,帧数都挺高,但是玩CSGO的时候突然发现帧数普遍偏低,而且经常掉帧,那么就可以判断,是你的CPU性能限制了游戏体验,CPU是有保护机制的,当温度过高时,会降频工作以确保不会被烧毁,而一旦降频,就会出现游戏过程中突然从上百帧掉到二三十帧的情况了。
3 内存
内存大小其实对游戏掉帧影响并不大,前提是内存足够的情况下,比如3A游戏大作,调用内存6G,而你总共只有8G内存条,系统还要占用一部分,剩下几百M的内存,这种不叫内存足够,这种情况妥妥的会掉帧,但假设游戏调用只有3G或者4G,那一般不会出现掉帧情况。另外内存的频率高低对帧数没有什么影响,一般几帧的起伏,相差不大,等于没影响,当然前提是同一代的产品对比,如果是不同代,可能会有不小的差异,比如DDR3 1600的内存和DDR4 2666的内存,帧数绝对会有提升的
4 硬盘
硬盘对游戏帧数是一点影响都没有的,硬盘能够影响的,只有游戏的加载速度,也就是每个场景、画面加载贴图素材的时间,所以为了获得顺畅的游戏体验,使用固态硬盘会有很好的效果,但对游戏帧数改善没有影响。如果想提升响应速度,买个128G固态硬盘就足够了。
5 网络
网络对游戏的体验也特别差,对单机游戏的影响基本可以忽略不计。最明显的例子就是国外玩家玩国外游戏的时候,吃鸡游戏就是个最明显的例子。网络影响游戏的延迟,如果延迟特别高的情况下,你会发现你明明朝着玩家打了一枪,结果你被人家打死了,游戏体验非常的差。
总结
类似于散热啥的对游戏的性能影响也比较大,但是这些因素最终影响的也是上面几项,所以就不赘述了。
从开发者的角度来说,我们能优化的基本上也就是这五项,主要是CPU,GPU和内存。硬盘方面能做的就是优化资源,减少读写,网络方面就是处理网络异常,压缩传输资源减少网络传输,这两方面程序能优化的比较有限。
是处理网络异常,压缩传输资源减少网络传输,这两方面程序能优化的比较有限。