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#の文法的なお話で、知っていればなんてことはないのですが、詰まってしまったので備忘として書いておきます。






