小学手抄报unity渲染先后顺序
最近连续遇到了⼏个绘制图像之间相互遮挡关系不正确的问题,⽹上查找的信息⽐较凌乱,所以这⾥就把⾃⼰解决问题中总结的经验记录下来。
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
给儿子的生日祝福语如⽂章中有不正确的地⽅,欢迎指正。 ^_^