粒子系统粉红色,当附加到GameObject时

时间:2018-05-08 14:39:25

标签: c# unity3d 3d game-development

我正在研究统一粒子系统。

我创建了一个新项目和一个空对象,然后将粒子系统添加到它。由于某种原因,它无法正常工作,你可以看到附加的图像,看看发生了什么......

enter image description here

2 个答案:

答案 0 :(得分:3)

由于您创建粒子的方式,问题是缺少材料

两种方法来创建粒子系统:

1 。创建空GameObject,选择它然后转到 Component - > 效果并将粒子系统组件添加到该空GameObject中。这就是您创建当前粒子系统的方法。

如果使用方法#1 创建粒子系统,Unity将将材质附加到粒子系统,从而使其变为粉红色。您必须创建一个新材质,将着色器更改为“Particles / Alpha Blended Premultiply”并使用“Default-Particle”作为纹理,使粒子看起来像默认材质。

您也可以使用粒子系统的“Default-Material”,但不能修改它。

enter image description here

2 。转到 GameObject --->创建粒子效果 ---> 粒子系统

如果使用方法#2 创建粒子系统,Unity 创建新的GameObject,附加粒子系统,也是一个材料

始终通过转到 GameObject --->创建您的素材效果 ---> 粒子系统。它会为你节省一些时间。

简单的解决方案是删除当前的粒子GameObject,通过转到 GameObject --->创建新的粒子。 效果 ---> 粒子系统,而不是#1

中描述的方法

如果您需要从代码创建粒子系统,那么按照#1 方法执行操作,但是通过脚本执行。以下是如何做到这一点:

void Start()
{
    createParticleSys();
}

void createParticleSys()
{
    //Create GameObject to hold the Particle System
    GameObject psObj = new GameObject("Particle System");
    //Add Particle System to it
    ParticleSystem ps = psObj.AddComponent<ParticleSystem>();

    //Assign material to the particle renderer
    ps.GetComponent<Renderer>().material = createParticleMaterial();
}

Material createParticleMaterial()
{
    //Create Particle Shader
    Shader particleShder = Shader.Find("Particles/Alpha Blended Premultiply");

    //Create new Particle Material
    Material particleMat = new Material(particleShder);

    Texture particleTexture = null;

    //Find the default "Default-Particle" Texture
    foreach (Texture pText in Resources.FindObjectsOfTypeAll<Texture>())
        if (pText.name == "Default-Particle")
            particleTexture = pText;

    //Add the particle "Default-Particle" Texture to the material
    particleMat.mainTexture = particleTexture;

    return particleMat;
}

答案 1 :(得分:-2)

Unity粒子系统粉红色正方形:

您尚未为粒子选择材料。该颜色意味着粒子系统中的材料存在问题。我想这是因为你还没有选择一个。

在检查员的底部周围应该有一个部分,您可以单击并选择一种材料。它将位于最后一个粒子系统选项卡中。

我认为该部分称为渲染器: enter image description here

现在,您可以通过单击渲染器中的材质字段并找到默认粒子来解决此问题。如果需要,您也可以使用其他材料,例如,如果没有这些材料。

如果你通过脚本创建了粒子系统,你必须看@Programmers回答。