我发现UGUI和粒子同时存在时,层级设置就变得麻烦起来:
现有一个界面A,上面有一个粒子特效。这时候需要弹出界面B,为了让界面B挡住粒子特效,给界面A和界面B都加上Canvas,然后勾上OverrideShorting,设置层级如下:界面A的OrderInLayer设为0,特效设为1,界面B设为2。这样界面B就能挡住界面A和特效。
通常界面都是动态加载的,它们之间谁在谁前面都是不固定的。这时就只有动态设置层级,当要打开一个新界面时,层级在上一个界面的基础上加n。
这时候问题又来了,在重新给界面设置层级时,也需要给这个界面下的所有粒子特效重新设置层级。
总觉得这样处理不够优雅。本来我觉得UGUI自动设置层级的机制很好,但是加入粒子特效后就需要放弃这个机制,还有UI中有3D模型或者2DSprite也是这个问题。
不知道各位是如何处理的