2020/11/09
今回はUnityのパーティクルに関するすごくちょっとしたお話です。
ParticleSystemコンポーネントの各パラメータをスクリプトから変える場合、ParticleSystem
型インスタンスのmain
やemission
を使います。
しかし直感的に以下のように書いてもコンパイルエラーになります。これは各モジュールのプロパティがゲッタしかないためです。
using UnityEngine; public class ParticleSystemTest : MonoBehaviour { void Start() { var particleSystem = GetComponent<ParticleSystem>(); particleSystem.main.startSize = 2f; } }
弄りたいモジュールのゲッタを別の変数に取得して、その後でパラメータを代入すると通ります。mainの場合は以下のような感じ。
using UnityEngine; public class ParticleSystemTest : MonoBehaviour { void Start() { var particleSystem = GetComponent<ParticleSystem>(); var main = particleSystem.main; main.startSize = 2f; } }
どちらかというとC#の文法的なお話で、知っていればなんてことはないのですが、詰まってしまったので備忘として書いておきます。