ParticleSystemのLoopingやGravity Modifierなどをスクリプトから制御する方法

ParticleSystemにはメインモジュールと呼ばれる、パーティクルのメイン設定を制御する部分があります。

Duration、Looping、Prewarm、Start○○、Gravity Modifier、Simulation Space、Simulation Speedなどが含まれます。
下の画像の部分がメインモジュールです。(Emission、Shape、Velocity over Lifetimeなどの上の部分)

よく必要になりそうなのはLooping、Gravity Modifier、Simulation Speedあたりかな?
個人的には、ですが。

これらはインスペクタで制御することができるのですが、スクリプトで変更したい場合の方法です。


ParticleSystem.MainModule main = GetComponent().main;
main.loop = false;
main.gravityModifier = 3f;

こんな感じで制御することができます。

GetComponent().loop = false;

のような書き方はobsoluteになっていたので、注意が必要です。

コメント

  1. 参考になります。

    すみません。教えていただきたいのですが
    main.loop = false;
    という風に記載ありますが
    loopがloopingではないというのを

    調べる場所はあるのでしょうか?

    私が知りたいのは
    スクリプトでDurationの値を制御したいと考えています。

    • 確認はしていないのですが、

      bool isLoop = main.loop;
      main.duration = 1f;
      

      とかでできないでしょうか?