无法统一停止粒子发射

时间:2016-04-27 04:27:19

标签: c# scripting unity3d

我试图只允许粒子系统在可见东西时发射粒子。如果名为 avail 的布尔值为true,则粒子系统知道何时开始。我认为适用于此的代码如下:

     if (avail)
    {

        GetComponent<MeshRenderer>().enabled = true;
        GetComponent<ParticleSystem>().enableEmission = true;
        print("Mesh enabled");

    }

然而,这失败了。我也尝试过:

     if (avail)
    {

        GetComponent<MeshRenderer>().enabled = true;
        GetComponent<ParticleSystem>().emission.enabled = true;
        print("Mesh enabled");

    }

然而,这也失败了。在我搜索的每个网站上,这两个“解决方案”出现了,但它们对我不起作用。第一个例子说“这样做的方法已经过时了”,第二个例子说我不能将“emission.enabled”设置为变量,因为它是一个getter而不是setter。任何帮助解决这个问题都非常感谢。

1 个答案:

答案 0 :(得分:1)

我现在不打开团结,但我认为

GetComponent<ParticleSystem>().Stop();

是你需要的。您可以使用

重新启动系统
GetComponent<ParticleSystem>().Play();

另外,如果经常这样做,你应该考虑将粒子系统保存在类变量中。