如何停止在场景中作为游戏对象插入的粒子系统始终在运行?
我只有一些想法,但它们还没有起作用。
因此,假设我的Hierarchy of objects中有一个名为Game Object的“ParticleSystem3” - 引用ParticleSystem3并阻止它连续发射的正确方法是什么?
我不明白我发现的例子,因为它们似乎没有给我一个正确的粒子系统参考。
我知道在ParticleSystem标题下的手册中有Play,Pause和Stop功能。如何正确使用它们?我只需要Stop,所以我的问题就是我已经提到的与粒子系统相关的Stop机制。
我用JS(JavaScript)或C#编码。
除了“Google it”之外,你有什么提示吗?我似乎找不到答案,而且我是Unity3d 5.2的新手。
答案 0 :(得分:0)
你可以:
使用ParcileSystem禁用GameObject,但我认为它不是您想要的,因为您希望GameObject处于活动状态。
gameObject.GetComponent<ParticleSystem>().enableEmission = false;
gameObject.GetComponent<ParticleSystem>().Stop();
当你想要粒子系统时,再次发光:
gameObject.GetComponent<ParticleSystem>().enableEmission = true;
gameObject.GetComponent<ParticleSystem>().Play();
答案 1 :(得分:0)
我试过这个但它似乎并没有停止连续发射的粒子系统。其他建议是受欢迎的。如果我找到答案,我可以在这里发布。
void OnCollisionEnter(Collision col)
{
if(col.gameObject.tag == "bomb")
{
// I got hit by a bomb!
Instantiate(explosion, col.gameObject.transform.position, Quaternion.identity);
//ParticleSystem temp = ParticleSystem2;
//temp.emission.enabled = false;
ParticleSystem.EmissionModule em = ParticleSystem2.emission;
em.enabled = false;
ParticleSystem2.Stop ();
gameObject.GetComponent<ParticleSystem>().enableEmission = false;
gameObject.GetComponent<ParticleSystem>().Stop();
然后几个小时后,我在主摄像机下面创建了一个带有粒子系统游戏对象的空场景,并将一个脚本附加到粒子系统。这是剧本:
using UnityEngine;
使用System.Collections;
public class NewBehaviourScript:MonoBehaviour {
// Use this for initialization
void Start () {
gameObject.GetComponent<ParticleSystem>().enableEmission = false;
gameObject.GetComponent<ParticleSystem>().Stop();
}
// Update is called once per frame
void Update () {
//gameObject.GetComponent<ParticleSystem>().enableEmission = false;
//gameObject.GetComponent<ParticleSystem>().Stop();
}
}
现在它奏效了。