首先做个测试项目
每个子节点节点的东西基本是一样的
这里的TestDepth脚本只做一件事
获取RenderQueue。输出。
不过在每个父节点上有个UIPanel。
通过设置不同UIPanel和不同UISprite的Depth值来测试NGUI是怎么区分深度的。
通过脚本输出RanderQueue可以看到
看最后的数字。
以前我以为是按一定系数相乘再相加。
其实是根据UIPanel的个数排序。排最先的UIPanel的第一个UIWidget从3000开始。
根据同一个UIPanel下的UIWidget排序。Depth最先的RenderQueue最小。逐个网上加一
这个UIpanel的算完以后算下一个的,也是继续加一。
这就是NGUI的Depth控制深度的原理,控制RenderQueue,通过UICamera,UIPanel,UIWidget的顺序一个个往上加一,不产生间断。
所以如果想在某一个UIWidget上挂粒子,找到这个UIWidget的RenderQueue,往上加一就可以了~
如果刚好夹在两个UIWidget中间,尝试插个空白的不同Drawcall的UIWidget来隔开。
时间: 2024-10-19 23:35:16