NGUI相当不错,但是有一点比较纠结的就是面板上显示特效的时候,你会发现要么盖住特效,要么面板永远无法盖住特效。很多人说改renderqueue,然后就能显示了,然后下面一堆楼主给力。。。。呵呵。
先从原理上解释吧,NGUI是通过调整renderqueue来显示不同层,然后它的shader是不写入z值的,然后特效刚好也是不写入z值的,所以你要控制特效和UI的关系,确实只能通过renderqueue.但是如果你只是单纯让renderqueue非常大,那么特效就会永远在面板之上。
如果你想要两个面板夹住特效,那么就需要看NGUI源代码了。
这里希望大家自己去看一下,我直接贴上修改方案:
if (this.widgetInFrontOfMe != null && this.widgetInFrontOfMe.drawCall != null) {
int rq = this.widgetInFrontOfMe.drawCall.renderQueue + 1;
Debug.Log(rq);
foreach (Material material in m_renderer.materials) {
if(material.renderQueue