unity加载优化小结

  1. 有一些ui上挂了刚体,但其实ui是没必要用刚体的,增加额外的组件会增加额外的开销。

  1. 移除ui图片的read/write,mipmap
  2. 移除了一些没用的shader(还有一些没敢移除)
  3. 分别展示背景,人物和ui。主人物和背景和ui加载好后就可以移除loading了。因为大世界中你不敢保证有多少个角色要加载,当然后期维护要加上遮挡剔除,把屏幕外的东西移除掉
  4. 一些compoment的update可以等loading结束后才执行,减少加载时每帧的开销
  5. Transform不能放在for循环,getcompoment也是。
  6. setactive改造为设置进来时判断是否与之前的值一样。因为本身setactive每次真是调用都回有gc
  7. string不能直接加
  8. parent没用setparent替换。
  9. 如果是交互的音效应该不能压缩,不然因为unity要解压,需要耗时所以点击时不能做到实时。关键再选择PCM
  10. 协程用得多,这块尽量用update或lateupdate替换,因为协程本身在unity会创建实体来管理,会产生少量得gc
  11. 摄像机的clipping planes用到足够就好,越小回越少drawcall
  12. 多余得隔帧处理
  13. 每帧都再做判断而且判断到false没有及时退出循环
  14. 多余的gc,主场景进入的过程中有三次gc
  15. 减少new waitforsecond的使用并且把他存再一个变量
  16. 特效的order的问题,同一个材质的应该放在同一个order下,不同的材质一定要放在不同的order下。
  17. 去掉了加载模型后的卸载行为
  18. 多余的mesh,直接减少五个drawcall
  19. Aup另一个线程去做gpu数据
  20. shader预加载放在loading之间的玩家提醒上做
  21.  
  22. Globalcameradata的缓存及提前初始化

调整层级,把相同的altas放在一个顺序的层级里,当前战场得ui得dp大概在18个左右

 

每次都得重新加载资源,其实加载下来保存起来,再初始化就好。

。。

1.ngui会加上rigidbody。这是因为ngui基本都是unity4.x出的版本,所以那时还需要加rigidbody。但到了5.0后就不需要了。所以应该要做工具来识别出属于ui的并且加上了rigidbody的,把他去掉。

2.路线导航箭头的做法,之前每个箭头都是用projector来做,导致会有大概50个dc左右。现在改为用面片(quad)实现。然后用rvocontroller让他再地面来实现

3.字典的key不能用枚举

4.隐藏没用到的widget,现在空widget非常多,会消耗uipanel的update。减少uipanle的消耗5.

5.特效或其他对象分段加载,均衡。并用lru加载

6.动画全都开启optimizeGameObjects选项,减少骨骼运算。

7.用多线程处理(JobHandler,IJobParallelForTransform)。所有update的地方都可以尝试用多线程。比如计算血条层级的地方,对战的地方。String不支持,transform可以从Schedule调用时传递。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值