この記事でのバージョン
Unity 6000.3.4f1
はじめに
今回は再生中のParticle Systemのパーティクル(粒子)の数を、
瞬時に好きな数だけ減らしたり増やしたりする方法の紹介です!
![]() |
パーティクルの数を、瞬時に好きな数だけ減らしたり増やしたりする
まずParticle Systemの各粒子はGetParticlesで取得出来ます。
ただし、直接返り値として取得出来るわけでなく引数で配列を渡す感じになります。
//各粒子を取得/*_particleSystemがParticleSystem*/ ParticleSystem.Particle[] particles = new ParticleSystem.Particle[_particleSystem.particleCount]; //現在の粒子の数を取得 var aliveCount = _particleSystem.GetParticles(particles);
同様にSetParticlesというメソッドを使えば粒子を設定できるので、
GetParticlesで粒子取得後、必要な数だけ指定して設定すれば、多い分の粒子を減らせます。
//各粒子を取得/*_particleSystemがParticleSystem*/ ParticleSystem.Particle[] particles = new ParticleSystem.Particle[_particleSystem.particleCount]; //現在の粒子の数を取得 var aliveCount = _particleSystem.GetParticles(particles); //10個に減らす(もともとが10個以下なら減らさない) _particleSystem.SetParticles(particles, Mathf.Min(10, aliveCount));
逆に増やしたい時にはEmitというメソッドを使えば新しい粒子を追加で発生させられます。
//パーティクルを10個増やす _particleSystem.Emit(10);
ただし、maxParticlesの値は超えて増やすことは出来ません。
![]() |

