[性能优化]游戏物体经常显隐的正确打开方式

声明:此篇文章是个人学习心得,并非教程。不保证百分百正确,仅供参考。如有错误,欢迎指出。谢谢!


      

目录

显隐游戏物体的三种方式

1.使用SetActive的API

2.使用位置移动

3.更改摄像机渲染不到的标签显隐游戏物体

总结


         刚学Unity时候,知道SetActive能够隐藏游戏物体,从此不管三七二十一,想要看不见物体,全部SetActive(False)解决。直到前阵子才发现,想要性能优化的话,物体显隐其实并不是用SetActive。当然,没有数据口说无凭。以下是在Profiler下的测试数据

显隐游戏物体的三种方式

1.使用SetActive的API

激活关闭显示显隐

 

2.使用位置移动

                                

移动位置控制显隐

3.更改摄像机渲染不到的标签显隐游戏物体

更改层级控制显隐

 

总结

        从上面的数据我们可以很直观的看到,SetActive的性能消耗是远远大于另外两个方法的。(Profiler面板不管是最低峰的运行时间还是最高峰运行时间都是远远大于另外两个显隐方法)SetActive这么消耗性能其实是因为每次激活关闭游戏物体,都会导致其挂载的组件重新调用(例如MeshRenderer要重新渲染游戏物体),脚本要执行一次OnEnable或OnDisable的生命周期函数。而上面测试中只有一个物体,并没有挂载脚本。假设游戏物体有子物体,并且都挂载脚本。那么性能就会消耗更多。

        效率方面:移动位置=更改标签<SetActive。再从安全面分析,移动位置可能会导致一些意料不到的错误。所以最好的经常显影方式是更改游戏物体的标签。

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值