公司unity游戏优化总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012239432/article/details/82345670

优化是很多应用开发过程中都有的阶段,对于游戏而言,优化工作也是很有必要的一部分,一个好的游戏离不开各方面的优化,至此总结一下优化过程中的经验:

  • 代码优化:
  • 1.为容器初始化容量:当容量不足时扩容的代价是非常昂贵的,所以最好一开始就有一个大概的估计。
  • 2.减少多余的访问,例如Dictionary的使用中我们常常会先用一次ContainsKey再进行访问,相当于访问了两次。使用TryGet替代会更好。
  • 3.不要滥用静态对象,由于静态对象是中存在于内存中,过度滥用会出现占用过多内存情况。
  • 4.更改功能或界面改版时,一定要整理并删除无用的序列化对象,避免之后的工作人员耗费大量时间查找和删除。
  • 5.随时查看控制台输出警告,删除无用的属性声明。
  • 注:框架设计应考虑全面和其可维护性,避免出现基础性的大问题但因模块间高耦合度造成修改难度大、涉及范围广的问题。
  • 图片优化
  1. 贴图大小应为2的幂次方大小的正方形贴图。
  2. 要求不高的特效可以适当降低图片分辨率大小以减小在内存和包体中所占大小。
  3. 打入图集中的图片应统一压缩方式,避免因压缩方式不统一而打出多个图集情况。
  4. 与代码优化第4条相同,界面改版时直接删除无用的老版图片,避免后期优化花费大量时间查找和删除。         
  • 内存优化:
  1. 不要将对象池中所有预制体都初始化,这样会导致所有预制体使用的资源(图片、音频)都加载到内存中占用大量内存空间。
  2. 整理图集,例如界面A的对象使用的图片都再图集A或者还有部分在公共图集中,但不是部分使用图集A,部分图集B,还有在图集C中。
  3. 托管堆内存管理:切忌高频率的New Class/Container/Array等。切忌不要再Update、FixedUpdate或较高频调用的函数中开辟对内存。

     这些暂时是到现在为止涉及到的方面。好的设计与管理可以大大降低优化工作的成本,大部分游戏的优化并不是吹毛求疵,而是希望游戏可以流畅的运行在通用机型中,让更多的玩家享有玩游戏的过程。

猜你喜欢

转载自blog.csdn.net/u012239432/article/details/82345670
今日推荐