unity 利用相机改变渲染顺序-让UI显示在所有物体前面

1 关于渲染

通过shader是可以改变渲染顺序的,但是太麻烦。特别是当用来改变UI的顺序时。

2 相机

可以使用多个相机,相机的深度(depth属性)越小越先渲染。它们的渲染结果会叠加。

3 例子

3.1

现在canvas被卡在cube中间,一部分被cube挡住了。
在这里插入图片描述
3.2
让主相机不显示UI层。即如图所示,去掉Culling Mask中 UI前面的
在这里插入图片描述
3.3
复制主相机属性。
在这里插入图片描述

3.4
在主相机下新建一个相机,将主相机的属性粘贴过去。
在这里插入图片描述

3.5

设置新相机的Clear Flag 为 Depth only
将Culling Mask 属性只勾上 UI
设置Depth属性为1。
这里设置为1的目前是为了让UI层在主相机后面渲染(主相机的深度是0)。
越是在后面渲染,越显示在屏幕前面。
在这里插入图片描述

3.6
保证其它物体不在UI层
在这里插入图片描述
保证Canvas在UI层。
在这里插入图片描述

3.7
这样,就可以实现UI显示在其它物体前面的效果。利用这个原理,可以任意调换物体的渲染次序。
是不是很棒呢?
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值