アウトドアとかゲーム開発とか

ロードバイクやキャンプなどアウトドアとUnityでの開発とか

【Unity】ParticleSystem.durationのUnity5.5以降の対応

自著であるゲーム開発レシピでも使用していた「ParticleSystem.duration」がUnity5.5以降で使用できなくなったようで、元同僚やブログなどで報告が上がっていたので解決方法を記載しときます。

使用箇所はパーティクルが終了したら消滅するところなので、下記のように使用しています。

ParticleSystem particleSystem = GetComponent <ParticleSystem>();
Destroy(gameObject, particleSystem.duration);

particleSystem.duration が使用できなくなっているので、代わりに ParticleSystem.MainModule.duration を使用します。

docs.unity3d.com


使用例がこちら

ParticleSystem ps = GetComponent<ParticleSystem>();
var main = ps.main;
Destroy (gameObject, main.duration);

自分で検証してませんが、元同僚がこれでいけたということなのでこれで。
間違いや問題あったら指摘してください。

追記:2020.3.8f1で動作確認しました。