Unity 5.5からパーティクルシステムの設計が大きく変わり、スクリプトから各パラメーターの設定を変更する方法も、以前とは少し変わりました。
以前までの方法
// パーティクルの速度を設定する
particleSystem.startSpeed = 1;
以前までは↑のような書き方で設定できましたが、これからは↓のように書きます。
新しい方法
// メインモジュールへのアクセサを取り出す
var ma = particleSystem.main;
// アクセサに対してパラメーターの設定を行う
ma.startSpeed = 1;
// 範囲ランダムやカーブを設定するにはMinMaxCurveを使う
ma.startSpeed = new ParticleSystem.MinMaxCurve(1, 2);
MainModule型はstructで、paritcleSystem.mainは値返し(コピーを返している)なので、これでは値を書き戻していないので一見ダメなように見えますが、これで設定が反映されます。むしろparitcleSystem.mainは読み取り専用プロパティなので、paritcleSystem.main = ma;
とすることはできません。
また、structの値返しをしているので、paritcleSystem.main.startSpeed = 1;
のような書き方も当然できません。これは同じくstructを返すtransform.positionなどと同じ制限ですが、transform.positionの場合は値を書き戻さないと反映されないので、そのあたりで混乱しないように気をつけましょう。