UGUI 打开关闭界面性能消耗笔记

9 篇文章 0 订阅

以下全是隐藏开启界面 ,不包括实例化界面操作

先说关闭界面

采用GameObject.SetActive 方法 ,消耗的时间 6.70, 产生 gc 384B

解决思路,1、移除视野?  不行,drawCall 没有任何变化

                   2、缩放大小 0 0 ? 可以,万一里面有不可缩放的粒子特效怎么办?有待商榷

                   3、给当前组件加canvas,设置canvas的组件可用性,试试 --- >  

                   4、百度搜的 Canvas Group 也试试 ,对比一下

时间 2.00   gc : 6.8KB    时间减少了4.7 ms ,gc增加了 6416B , 干的漂亮 ,有读者要问了,博主你在玩蛇皮?

开界面 对比   GameObject.SetActive()   和 Canvas.Enable    ---  >

GameObject.SetActive  时间 28.02 ms  , GC : 50.6KB  ,  Canavas enable  时间  8.13   GC :30.4KB  

Canvas.enable  完胜  ,鼓掌 !!! 

但是  GC 时间都那么高啊 啊啊啊 ,怎么干掉 ? 

百度是我们的好朋友 ,继续搜索  Canvas Group   - --> 试 !

相比月 canvas enable -- >  开界面 5.5ms  GC :44.7 又上去了,  关界面 快了0.87ms , 但是多了6.8kB .

说好的 比 enable 好呢,  只是时间调用上快了,GC反而多了

 

2020/8/11更新

使用Layer层,通过设置canvas的layer层,并禁用 /启动Graphic Raycaster 达到无消耗开关界面

可以看出,基本无消耗,下面的消耗点,是我用dotween做了动画。

综上所述 : 采用layer层 可以无消耗开关 已经实例化的界面。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值