Unity+NGUI 的层级和深度的各种关系及调整

现在手头的项目是用NGUI实现的2D游戏,其中穿插各种模型和特效...总之,各种蛋疼。问了好多人,也没解决面片特效层级调整的问题,颇为感概:不是unity不人性,只是项目非主流...

但是当问题解决后,才发现,unity也挺人性的,只是自己知道的还太少。

整理一下unity和NGUI的各种层级关系。在NGUI下,有这么几层(按优先级从高到低排列):

1,摄像机的深度 Camera.Depth
1.5,SortLayer
2,SortOrder,这个属性可以在NGUIPanel和粒子的Render里调整,默认都是0
3,RenderQueue属性,这个在Inspector面板中只能在UIPanel中显示调整(从3000开始,设置以后“4”和“5”的 Depth就会失效,即便这个属性值一致),并且每个Material也可以通过代码设置这个值
4,UIPanel的Depth
5,UIWidget的Depth
6,空间坐标,在以上属性一致的情况下,根据与摄像机的位置渲染

补充:以上关系都是在shader的ZWrite属性设置为OFF的前提下,如果是ON,就呵呵了

之前一直比较蛋疼的是,不知道怎么设置用面片模型制作的特效的层级。

    void ChangeQueue(int layer)
    {
        if (layer >= 3300) layer = 3300;
        gameObject.GetComponent<Renderer>().sharedMaterial.renderQueue = layer;
    }

用上面这个去设置,一切OK!

这种方式同样对于粒子有效。通过这种方式,就不用调整SortOrder

欢迎转载。转载请注明:
Hello光头原创
如有建议或意见,欢迎留言。
也欢迎大家加我qq,一起学习进步:1009570451



  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值