UGUI渲染顺序

本文是参考风里疯语的UGUI视频教程的,主要是为自己做个记录,在遗忘时能方便查阅

canvas有三种渲染模式可供选择,分别是Overlay,Camera,World
其中Overlay为覆盖模式,即永远最后渲染,覆盖其他物体和UI。Camera为相机模式,渲染顺序依据相机。World为世界模式,并不因相机而改变,至于距离有关。
实际工程中,我们会运用多个canvas,那么各种模式下渲染顺序又是如何?

  • 第一种情况,当有多个canvas并且渲染模式都为Overlay。
    这种情况下,渲染顺序是由canvas组件下的Sort Order决定的,值越大的越后渲染。

  • 第二种情况,当有多个canvas并且渲染模式都为Camera。
    这种情况下,渲染顺序首先由Rendener Camera的Depth值决定,值越大越后渲染。
    如果Depth值相同,那么由canvas组件下的Sortint Layer顺序决定,顺序越后则越后渲染。
    如果Depth值和Layer值都相同的情况下,渲染顺序由Order in Layer决定,值越大越后渲染。
    (注意:若Rendener Camera都是同一个摄像机,则不考虑Depth情况)

  • 第三种情况,当有多个canvas并且渲染模式都为World。
    这种情况下,渲染顺序由canvas组件下的Sortint Layer顺序决定,顺序越后则越后渲染。
    如果Layer值都相同的情况下,渲染顺序由Order in Layer决定,值越大越后渲染。
    特别注意,当Layer和Order值都相同的情况下,此时渲染顺序由canvas距离Render Camera的距离决定,距离越近越后渲染。(
    只有World模式有这种情况,因其他模式下canvas都是位置固定不可移动的。并且以上情况只考虑canvas都出现在Render Camera摄像范围的情况下。)

  • 第四种情况,当有多个canvas并且渲染模式都存在的情况下。
    这种情况下,首先Overlay模式的canvas永远是最后渲染,并且同为Overlay模式的canvas在Sort Order的值越大时越后渲染。
    其次,Camera和Overlay同时存在的情况下有两种情况:若使用的不同的相机,则由摄像机的Depth决定,值越大越后渲染。若使用的是相同的相机,则是由canvas距离摄像机的距离决定的,距离越近的越后渲染。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值