您的位置:首页 > 移动开发 > Unity3D

unity中的几个坑

2016-03-01 15:56 483 查看
1、最近给UI添加粒子特效时,总是被UI遮挡

解决方法是:

因为粒子系统的渲染顺序列默认为3000,而NGUI的渲染顺序默认也是从3000开始,当有嵌套的panel时或者Depth更高的panel时,GUI的渲染顺序会高于3000,

解决办法是,

1.修改Ngui中的UIPanel脚本中的默认的RenderQueue,调整到3000以下,这样就不会遮挡住粒子特效了,当有的窗口需要显示在特效上面时,在检视面板中把该窗口的Renderer Q选项调整为Start At,值为3000以上,就可以解决,不过我的NGUI版本为3.1.6,所以可以直接调整。

2.使用另外一个摄像机,显示特效。但是在UI窗口相互切换时,不太好控制。

3.修改粒子特效的Shader中的RendererQueue值。
using UnityEngine;
using System.Collections;

public class renderqueue : MonoBehaviour {

public UIWidget widget;
private int renderQueue;

// Use this for initialization
void Start () {
Do ();
}

// Update is called once per frame
void Update () {
Do ();
}
void Do()
{
Renderer renderer = GetComponent<Renderer> ();
if(renderer != null && renderer .material != null)
{
if(widget != null && widget.drawCall != null)
{
renderQueue = widget.drawCall.renderQueue + 1000;
}
else
{
renderer.material.renderQueue = 4000;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: