読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

timeScaleを無視してParticleSystemを再生させる【Unity】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 5.5.0p1


はじめに

ParticleSystemはtimeScale変更するとそれに合わせて再生速度も変わるようになっています。


f:id:kan_kikuchi:20170118145634g:plain


ただ、残念ながらtimeScaleを無視して一定速度で再生するような設定はないようです。


Simulate

timeScaleが変わっても一定速度で再生したい!

そんな時に使えるのがParticleSystemのSimulateです。



以下のような形で任意の時間分、パーティクルを進める事が出来るので、

これをUpdateで実行し続ければ、timeScaleを無視して一定速度で再生を続ける事が出来ます。

private void Update () {

  _particleSystem.Simulate(
    t            : Time.unscaledDeltaTime, //パーティクルシステムを早送りする時間
    withChildren : true,                   //子のパーティクルシステムもすべて早送りするかどうか
    restart      : false                   //再起動し最初から再生するかどうか
  ;

}


試しにSimulateを使って再生したパーティクルが下の例の右側です。


f:id:kan_kikuchi:20170118145928g:plain