以下の内容はhttps://kan-kikuchi.hatenablog.com/entry/OnParticleSystemStopped_Unity2020より取得しました。


パーティクルのStop Actionで再生の終了が検知出来ない【Unity】【Particle System】【トラブルシューティング】




この記事でのバージョン
Unity 2021.1.23f1


はじめに

以前Unityのパーティクルが終わった時に処理を実行する方法を紹介したのですが、


f:id:kan_kikuchi:20190525055036g:plain


今回はそのやり方で再生の終了が検知出来ない場合があったのその紹介記事です!

ちなみにUnityのバージョンによって挙動が違います。


なお、記事中では以下のアセットを使っています。

Sci-Fi Arsenal | VFX Particles | Unity Asset Store



再生の終了が検知出来ない場合

まずパーティクルの終了の検知するにはStop ActionをCallbackにして、

f:id:kan_kikuchi:20211026173829j:plain


そのStop Actionを設定したParticle Systemが付いてるオブジェクトと同じオブジェクトに

以下のようにOnParticleSystemStoppedというメソッドを実装したコンポーネント追加します。

/// <summary>
/// パーティクルの再生が終わった時に実行される
/// </summary>
private void OnParticleSystemStopped(){
  Debug.Log("パーティクル終わったよ!");
}
f:id:kan_kikuchi:20211026173918g:plain


この時、Looping(何度も繰り返すか)が有効になってると元から再生の終了が検知出来なったのですが、

Unity2020辺りから子のパーティクルのLoopingが有効になっていても終了の検知が出来なくなりました。

(Unity2019の頃は子のLoopingが有効でも終了の検知が出来た)

f:id:kan_kikuchi:20211026173903j:plain


なので再生の終了が検知出来ない場合は子のパーティクルも含めて設定も確認すると良いかと思います。






以上の内容はhttps://kan-kikuchi.hatenablog.com/entry/OnParticleSystemStopped_Unity2020より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14