テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】パーティクルのクリアは行わずパーティクルの”生成”を停止させる方法

f:id:tsubaki_t1:20171214232041g:plain

今回はParticle System(Shuriken)において、パーティクルのEmit(放出)を一時的に停止する方法について紹介します。

パーティクルの一時停止

パーティクルの生成は大抵の場合EmissionModuleを使用します。ただし、パーティクルの生成を停止することは若干面倒な作業になります。

f:id:tsubaki_t1:20171214232319j:plain

生成の停止?

たとえばバーニアの演出をパーティクルで行った場合です。バーニアの火を一瞬止めて再度吹かすような絵では当然パーティクルを一時的に止めたくなります。

これをSetActiveで行う場合、パーティクルは速やかに停止すると同時に表示まで消してしまいます。

f:id:tsubaki_t1:20171214234005g:plain

ParticleSystem.Stop()

やり方は単純で、パーティクルの停止時に「クリアしない」停止方法を選択するだけです。

particle.Stop (true, ParticleSystemStopBehavior.StopEmitting);を実行すると、パーティクルの生成は停止しますがパーティクルの処理自体は維持してくれます。

なおParticleSystemStopBehavior.StopEmittingは標準値なので、実際にはparticleSystem.Stop()でもOKです。

 

gist.github.com

以前と比べると、生成済みパーティクルを全消去するオプションが追加されています。

以前に書いてた

と、こんな感じで紹介しましたが、以前に同じ記事を書いてました。タイトルのニュアンス違ったから違うもんと思ってた(本人談

tsubakit1.hateblo.jp

ハハハ、あるあr

やってみた

弾幕シューっぽい弾表現を弾幕で行っています。

当たり判定込で試してますが、思ってたよりも普通に使える…

 コントロールが面倒くさいのが玉に瑕

関連

これについて書こうと思った