2016-04-27 7 views
0

Ich versuche, das Partikelsystem nur Partikel emittieren zu lassen, wenn etwas sichtbar ist. Das Partikelsystem weiß, wann es gestartet werden soll, wenn ein Boolescher Wert Avail wahr ist. Der Code, den ich dachte, würde für das folgende funktionieren:Fehler beim Stoppen der Partikelemission in Einheit

 if (avail) 
    { 

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

    } 

Dies schlug jedoch fehl. Ich habe auch versucht:

 if (avail) 
    { 

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

    } 

Allerdings ist dies auch nicht weiter. Auf jeder Site, in der ich gesucht habe, sind diese zwei "Lösungen" aufgetaucht, aber sie funktionieren nicht für mich. Das erste Beispiel besagt "diese Methode ist veraltet" und das zweite Beispiel sagt, dass ich "emission.enabled" nicht auf eine Variable setzen kann, weil es ein Getter ist und kein Setter. Jede Hilfe beim Herausfinden wird sehr geschätzt.

Antwort

1

Ich habe jetzt nicht die Einheit geöffnet, aber ich denke, dass

GetComponent<ParticleSystem>().Stop(); 

ist das, was Sie brauchen. Sie können das System neu starten

GetComponent<ParticleSystem>().Play(); 

auch verwenden, wenn Sie dies oft tun, sollten Sie Ihre Partikel-System in einer Klassenvariablen zu halten.

Verwandte Themen