【Unity】游戏UI中添加粒子特效导致穿层问题的解决
这里介绍一下简易的ui系统中,添加粒子特效导致的穿层问题
首先是在ui界面中添加粒子特效预制体,这个时候,控制这个粒子显示层级的有两个方面
上图中,如果你的Sorting Layer ID的值(Layer排序)是大于当前Canvas的,则无论你怎么调整下面的Order In Layer ,这个粒子特效都会显示在UI的上面。 当Sorting Layer ID和当前Canvas的Sorting Layer是一样的时候,则调整下面Order In Layer的值,哪个大则哪个显示在上面,不被遮挡。
这样虽然解决了当前的UI和粒子特效的层级关系,但是如果有别的弹窗或者UI再出来的时候,又会出现粒子和这些UI穿层的现象。
这里我的UI系统很简易,分为普通UI和弹窗UI,则我直接给弹窗UI单独添加一个Canvas,设置这个弹窗UI的层级更高于粒子特效的层级,则弹窗UI不会被粒子遮挡,下面是我的组件设置
注意这里需要添加一个Graphic Raycaster组件且设置如上,否则这个canvas下的UI会无法点击直接被穿透。
Canvas的添加情况根据自身情况而定,更复杂的UI可以在更细的地方添加Canvas,但是这种做法有一个比较大的坏处,会导致无法合批比较消耗性能。这里只做简易记录一下~
over~
觉得有用记得点个赞吧~