Unity 修改画面渲染顺序的几种实现方案

首先看下Unity的渲染层级关系以及提供的各种默认渲染队列,然后再去看具体实现方案。

先按大项条件排序,后按小项条件排序

1.Camera Depth: 越小越优先

2.RenderQueue 2500以下  

        1. Sorting Layer/Order in Layer          

                1. 按照Sorting Layer/Order in Layer 设置的值,越小越优先          

                2. 无此属性,等同于 Sorting Layer=default ,Order in Layer=0 参与排序             2.RenderQueue 越小越优先    

         3.RenderQueue 相等,由近到远排序优先

3.RenderQueue 2500以上    

        1. Sorting Layer/Order in Layer          

                1. 按照Sorting Layer/Order in Layer 设置的值,越小越优先          

                 2. 无此属性,等同于 Sorting Layer=default ,Order in Layer=0 参与排序             2.RenderQueue 越小越优先     3.RenderQueue 相等,

实现方案举例:

1.添加Overlay模式相机,添加layer层级,设置对应相机要渲染的模型层级;修改相机Depth(也就是在Base Camera中的顺序)

2.对应SpriteRender或Canvas下的UI等,修改Sorting Layer及Order in layer的值,越大越后渲染,即显示在前面。

 

3.对于3D物体,保证其材质Shader的Surface Type模式为Transparent,然后修改Render Queue(或Lit中的Priority),值越大的越后渲染,也就是会在画面最前面。

 4.对于3D物体,保证其材质Shader的Surface Type模式为Transparent,且渲染队列值一致时,也可通过添加Sorting Group组件,设置其Sorting Layer。

5.对于非Transparent模式的3D模型(Opaque),修改以上不会生效,需要额外修改遮挡关系及深度数据等,具体实现后续再补充吧...

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Star_MengMeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值