#UnityTips# 2017.11.14

本文分享了一个关于Unity UGUI的实用技巧,特别关注WorldSpace模式下的Canvas渲染问题。作者指出,在WorldSpace模式中未指定EventCamera时,系统会默认查找带有MainCamera标签的对象作为替代,这可能导致不必要的性能损耗。

hi,all。最近比较忙,所以更新也比较慢了。

今天就来和大家分享一个小Tip,它是关于UGUI的坑的。

使用过UGUI的朋友们都知道,Canvas的渲染方式有三种:

  • Screen Space Overlay
  • Screen Space Camera
  • World Space

其中后两者都需要指定一个Camera,Screen Space Camera对应的是Render Camera;
686199-20171112231548981-1490954707.png

World Space对应的是Event Camera。
686199-20171112231556888-120420036.png
(这里要吐槽的一点就是,Screen Space Camera模式下如果没有分配Render Camera的话至少还会有一个警告。但是到了World Space这里竟然没有。)

如果查看UGUI的代码的话,各位就会发现如果在World Space模式下没有给EventCamera赋值,Canvas并不会因此而接收不到消息,相反它会访问Camera.Main指定的相机。
686199-20171112231030013-536219730.png

而Camera.Main并非对主相机的引用,它只是使用Object.FindObjectWithTag("MainCamera")方法来寻找MainCamera,这是开销很大事情,尤其是每一个World Space Canvas每帧都要访问7-10次Camera.main时,开销显然更大。

因此各位在使用World Space时的时候,一定要设置Event Camera啊!

转载于:https://www.cnblogs.com/murongxiaopifu/p/7823487.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值