【Unity】ParticleSystemのCustomDataの設定【エフェクト】

UnityのParticleSystemには色々なパラメータを設定できます。 Unityのバージョンアップ時に、新しくパラメータが追加されたりvalueが増えたりするのですが、今回はその中の「CustomData」というパラメータを触ってみました。 簡単ですが、ブログにまとめて行きたいと思います。

CustomData

以前ブログに書いた「Trails」の下に「CustomData」と呼ばれるパラメータがあります。 こちら中を見ると、「Color」「Vector」を設定できるのですが、この値はどのように使えば良いのでしょうか?

Unity 8 23 hoge

Unityでわからないことがあれば、まずドキュメントを見てみましょう。(英語のドキュメントしかないですが)

見たところ、こちらで設定した値をスクリプトを使ってPartcileやShaderで利用ができるみたいです。

スクリプト

設定したCustomDataは以下のように取り出します。 [c] [SerializeField] private ParticleSystem particle;

// Use this for initialization void Start () {

Color color = particle.customData.GetColor (ParticleSystemCustomData.Custom1).color;
Debug.Log ("色:" + color);

float vec = particle.customData.GetVector (ParticleSystemCustomData.Custom2, 1).constant;
Debug.Log ("y:" + vec);

float vec2 = particle.customData.GetVector (ParticleSystemCustomData.Custom2, 2).constant;
Debug.Log ("z:" + vec2);

} [/c]

この辺を使って、Partcileのパラメータに設定したりすることができます(他にも使えそうですが)

最後に

2つのデータを持つことができるのが、このCustomDataなのですが、どういった場面で利用をするのかがイマイチ良くわかりません。 AssetBundle経由で呼び出した時に、スクリプト上で動的な処理をする時に使うのではないかと思いますが、調べても良い例が出てきませんでした。