unity渲染层级关系小结
来源:互联网 发布:淘宝处罚考试 重复铺货 编辑:程序博客网 时间:2024/05/21 04:39
最近连续遇到了几个绘制图像之间相互遮挡关系不正确的问题,网上查找的信息比较凌乱,所以这里就把自己解决问题中总结的经验记录下来。
Unity中的渲染顺序自上而下大致分为三层。 最高层为Camera层,可以在Camera的depth那里设置,设置之后,图形的渲染顺序就是先绘制depth低的相机下的物体,再绘制depth高的相机下的物体,也就是说,depth高的相机会覆盖depth低的相机(具体的覆盖关系有don't clear, solid color等等几种)
比Camera层稍低一层的是sorting layer层, 随便找一个可以设置sorting layer的地方,选择sorting layer,点添加按钮,就可以看到当前所有的sorting layer,并且可以更改sorting layer的顺序,排位靠后的sorting layer会覆盖排位靠前的sorting layer。 设置好sorting layer的相互关系之后,就可以给任何一个继承于Renderer类,或者有renderer的子类作为field的对象设置sorting layer了。 注意这些sorting layer的遮挡关系是在同一个camera的层级下的。 不同camera下的renderer渲染顺序以camera的depth为准。 有的component的sorting layer可以直接在unity editor里面设置,比如Sprite Renderer。 有的则需要用代码来设置,比如设置Particle system的sorting layer, 就需要在代码中取到 ParticleSystem.Renderer.SortingLayer 来进行设置。
比sorting layer再低一层的是sorting order, 这个数字指代的是在同一个sorting layer下的渲染顺序,用法很明显就不赘述了。
需要注意不要混淆的是gameobject的layer,和renderer的sorting layer。 gameObject的layer个人理解是一个逻辑上的分层,用于camera的culling mask等。 而renderer的sorting layer则用于渲染。只有继承与renderer或者有renderer作为filed的component才需要设置sorting layer。
另外需要指出的是,常用的NGUI的widget depth其本质也是一个sorting layer下的sorting order。 NGUI好像用的是一个叫做“UI"的sorting layer。 由此大家如果有需要,也可以自己取Hack NGUI的代码,把NGUI的sorting layer暴露出来供自己定制。
简单总结一下,决定Unity渲染关系的层级顺序是:
Camera
sorting layer
sorting order
- unity渲染层级关系小结
- unity渲染层级关系小结
- unity渲染层级关系小结
- unity渲染层级关系小结
- unity渲染层级关系小结
- unity渲染层级关系小结
- unity渲染层级关系小结(转载)
- unity渲染层级关系小结zz
- Unity3d渲染层级关系小结
- Unity3d渲染层级关系小结
- unity Ngui渲染层级的关系
- Unity 渲染层级
- Unity&NGUI渲染层级
- Unity3D -- 渲染层级关系
- Unity更改渲染层级代码
- Unity中的层级以及渲染顺序
- Unity通过层级关系获取子物体
- Unity中UI和游戏物体之间的层级渲染
- Kotlin笔记(三)数据类型
- 计算汉明距离java
- 1 java多线程技能
- 史上最简单的手机app教程 基于Corona SDK(5)
- Linux中Vi操作
- unity渲染层级关系小结
- compare()方法+使用compare方法
- 对象及变量的并发访问
- sudoers配置详解
- Java定时器在JavaWeb中的整合启动
- 黄东旭:When TiDB Meets Kubernetes
- Redis学习笔记之redis基础
- nio udp server client Demo例子(五)
- C++11 decltype关键字