ParticleSystem.startColorは単純なカラークラスではなく、MinMaxGradientクラスのため設定がやや面倒。
var color = new ParticleSystem.MinMaxGradient();
color.mode = ParticleSystemGradientMode.Color;
color.color = new Color(skinColor.r, skinColor.g, skinColor.b, 1);
var effect = SomeParticleSystem.main;
effect.startColor = color;
Colorのアルファを1でわざわざ指定しているのは、UnityEditor上でColorを作るとデフォルトでアルファ0が指定されるため。EditorでColor作って渡した時に見えなくなってしばらく悩んでしまった。
ParticleSystemGradientModeには
Color, Gradient, TwoColors, TwoGradients, RandomColor
の5つがある。
ModeによってColorの設定が変わるのでかなり面倒。
Unity 5.5 obsolete particle system code
Before 5.5 particle system variables could be accessed via P...
コメント