关注

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),修改以上不会生效,需要额外修改遮挡关系及深度数据等,具体实现后续再补充吧...

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Star_MengMeng/article/details/130150289

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--