Unity3d开发(十九)调整SortingOrder解决UGUI中粒子层级问题
Posted 松阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d开发(十九)调整SortingOrder解决UGUI中粒子层级问题相关的知识,希望对你有一定的参考价值。
为了做出更酷炫的的UI效果,通常要在UI中加入粒子效果。但与纯2D的UI动画或Spine不同,粒子在场景中制作,会存在与UI的穿插问题。本文探讨如何更改特效或UI的SortingOrder避免穿插。
前提条件
首先,Canvas的类型是一切的基础,我使用的Canvas是Screen-Space
,所有UI通过一个正交摄像机照出来。制作UI通常使用这种模式,本文不讨论其他情况。
核心原理
通过更改渲染的顺序来改变遮挡关系。一方面UGUI会根据Hierarchy
中的控件顺序进行排序。因此对于Animation或Spine制作的UI动画,只要顺序正确,就可以保证遮挡关系正确。对于使用ParticleSystem
制作的特效,它是使用Render
进行渲染,因此需要找到一个能够同时影响Render和UI控件渲染层次的方法。这个方法就是更改SortLayer或SortingOrder。这两种方法原理一样,先排序,再渲染。这个排序通过SortingOrder更改,而排序和排序之前可以通过SortLayer来分隔。以我目前的经验,使用SortingOrder足够,还没有用到SortLayer。
案例
为了说的更清楚我制作了个简单的例子,效果如下图所示:
以上是关于Unity3d开发(十九)调整SortingOrder解决UGUI中粒子层级问题的主要内容,如果未能解决你的问题,请参考以下文章
Android项目实战(三十九):Android集成Unity3D项目(图文详解)
Unity3d中UGUI组件精简复盘(十九)ContentSizeFitter组件