ゴマちゃんフロンティア

アザラシが大好きなエンジニアの開発日記です

【Unity】ParticleSystemの各モジュールのパラメータをスクリプトから変える方法

time 2020/02/05

今回はUnityのパーティクルに関するすごくちょっとしたお話です。
ParticleSystemコンポーネントの各パラメータをスクリプトから変える場合、ParticleSystem型インスタンスのmainemissionを使います。
しかし直感的に以下のように書いてもコンパイルエラーになります。これは各モジュールのプロパティがゲッタしかないためです。

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

down

コメントする