关于UGUI的中的层级(layer)问题

使用UGUI时,经常需要设置UI上的层级。

1.先来说说我们的问题:由于unity渲染物体时是从上到下直接渲染的,这就导致了渲染出来的效果和我们预期的不一致,因此必须设置层级,指定渲染的先后顺序(层级低的先渲染)才行。
这里写图片描述
这里写图片描述

那么问题来了,UGUII并没有NGUI这么方便的提供设置层级的入口。
2.我们必须给UI添加一个组件(Canvas)来设置UI层级
这里写图片描述
但是坑爹的是:设置完后,层级的问题解决了,但是UI的所有事件被拦截(包括按钮的点击、UI拖拽等等)

3.终极解决方案:给UI再设置一个组件Graphic Raycster,完美解决,既可以显示特效,还不会遮挡UI。
这里写图片描述

至此有个问题,如果界面很多都需要设置上述的canvas,那就需要自己实现一个管理类,给每个ui设置它的order,不过canvas会影响合并批次,所以不能有太多,自己权衡。


猜你喜欢

转载自blog.csdn.net/qq_34937637/article/details/81066890