UIPanel没有选 clip模式的时候
默认使用的shader 是 Unlit/Transparent Colored
如果要裁剪的话会用 Hidden/Unlit/Transparent Colored 1
把裁剪区域外的像素alpha 设置成0
代码
public class UIParticle : UIRenderSort
{
ParticleSystemRenderer m_Render;
Material m_Material;
// Use this for initialization
void Start()
{
m_Render = GetComponent<ParticleSystemRenderer>();
}
public override void FillDrawCall()
{
Shader shad;
if (panel.hasClipping)
shad = Shader.Find("Hidden/Unlit/Transparent Colored 1");
else
shad = Shader.Find("Unlit/Transparent Colored");
m_Material = new Material(shad)
{
renderQueue = renderQuene,
mainTexture = m_Render.material.mainTexture
};
m_Render.material = m_Material;
}
// Update is called once per frame
void OnWillRenderObject()
{