Unity面试总结-优化

1.为他人的系统做优化,需要注意什么?

  • 尽可能在他人系统的基础之上去做修改,不要大刀阔斧的去动别人的代码。

2.如何降低drawCall?

  • drawcall:CPU准备渲染对象,将渲染对象从硬盘加载到内存,再由内存加载到闪存,设置每个对象的渲染状态,材质,纹理,着色器等,然后CPU向GPU发送DrawCall命令,并将渲染图元传递给GPU。DrawCall过多导致CPU大量计算,影响效率
  • 只有相同材质的物体可以批处理,在程序中尽可的复用材质和物体。
  • 如果动态物体公用相同材质,unity会自动进行批处理。
  • 复杂静态场景,可以使用遮挡剔除算法。
  • 打包图集。密切相关的图打包在一起,图集不要太大。
  • 特效播放完毕,没有active设置为false,就会继续占用drawcall,要及时清理。

3.如何在UI上降低DrawCall?

  • 尽量减少mask遮罩的使用。mask内和mask外的ui不能一次渲染,能不用就不用,或者用带通道的图片代替mask的遮罩功能
  • 图集整理规范。批处理是根据图集来。常用的图片放一个图集,独立界面放一个图集等。
  • ui摆放减少交叉。 img -img-text 两个drawcall  image - text-image 三个drawcall
  • 动静分离
  • 尽量减少raycasttarget的使用
  • richtext

5.手机发烫的原因?如何处理?

  • cpu计算过高。
  • 手机配置不行
  • 后台程序多
  • 运行时间长
  • 信号弱,手机自动加大发射功率

6.GC工作原理,如何减少GC?

  • 不要显示调用system.gc(); 会触发主GC,增加gc频率
  • 减少临时对象的使用
  • 字符串频繁变更使用stringbuilder
  • 减少静态变量的使用

7.unity优化。

猜你喜欢

转载自blog.csdn.net/wang_lvril/article/details/109543238