我试图只允许粒子系统在可见东西时发射粒子。如果名为 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。任何帮助解决这个问题都非常感谢。
答案 0 :(得分:1)
我现在不打开团结,但我认为
GetComponent<ParticleSystem>().Stop();
是你需要的。您可以使用
重新启动系统GetComponent<ParticleSystem>().Play();
另外,如果经常这样做,你应该考虑将粒子系统保存在类变量中。