タイトルの通りなんですが、
ParticalSystemでアニメーション終了時に
IsEmittingがFalseの時に処理を行ったのですが、
粒子が残っているまま、次の処理に移行してしまいます。
粒子が全てなくなった時に、スクリプト内で次の処理を行いたいです。
どなたかお詳しい方がいらっしゃいましたら、教えて頂けたら幸いですm(_ _)m
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
そういう目的でしたら、isEmittingの代わりにIsAliveをチェックするとよさそうです。
試しに下記のようなスクリプトで状態の変化を見てみたところ...
C#
1using UnityEngine; 2 3public class ParticleSystemObserver : MonoBehaviour 4{ 5 private new ParticleSystem particleSystem; 6 private bool emitting; 7 private bool paused; 8 private bool playing; 9 private bool stopped; 10 private bool aliveSelf; 11 private bool aliveAny; 12 13 private void Start() 14 { 15 this.particleSystem = this.GetComponent<ParticleSystem>(); 16 this.emitting = this.particleSystem.isEmitting; 17 this.paused = this.particleSystem.isPaused; 18 this.playing = this.particleSystem.isPlaying; 19 this.stopped = this.particleSystem.isStopped; 20 this.aliveSelf = this.particleSystem.IsAlive(false); 21 this.aliveAny = this.particleSystem.IsAlive(); 22 } 23 24 private void Update() 25 { 26 CheckState(nameof(this.emitting), ref this.emitting, this.particleSystem.isEmitting); 27 CheckState(nameof(this.paused), ref this.paused, this.particleSystem.isPaused); 28 CheckState(nameof(this.playing), ref this.playing, this.particleSystem.isPlaying); 29 CheckState(nameof(this.stopped), ref this.stopped, this.particleSystem.isStopped); 30 CheckState(nameof(this.aliveSelf), ref this.aliveSelf, this.particleSystem.IsAlive(false)); 31 CheckState(nameof(this.aliveAny), ref this.aliveAny, this.particleSystem.IsAlive()); 32 } 33 34 private static void CheckState(string stateName, ref bool previousState, bool currentState) 35 { 36 if (previousState == currentState) 37 { 38 return; 39 } 40 41 Debug.Log($"{stateName} {previousState}->{currentState}"); 42 previousState = currentState; 43 } 44}
親のパーティクルシステムから発生した粒子がサブエミッター由来のものも含めて全部消えるとIsAlive(false)
がfalse
に、さらに子のパーティクルシステムから発生した粒子も含めて全部消えたらIsAlive()
がfalse
になりました。
投稿2020/04/30 20:01
総合スコア10811
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。