如何更改粒子系统的开始颜色

时间:2017-03-14 19:28:58

标签: c# unity3d unity5

所以我只是想通过脚本简单地改变粒子系统的起始颜色,而且它不起作用。

 private ParticleSystem trailPartical;   // The  particle system

 public Color StartColor
 {
      var main = trailPartical.main;
      main.startColor = value;
 }

这根本不起作用,我也尝试了折旧版本:

 trailParticle.startColor = value;

3 个答案:

答案 0 :(得分:4)

您尝试使用StartColor作为方法,根据{}中的代码判断,即使您将其声明为变量。

除了这个错误,由于ParticleSystem的一些变化,你需要访问组件的主要模块:

ParticleSystem.MainModule main = GetComponent<ParticleSystem>().main;
main.startColor = Color.blue; // <- or whatever color you want to assign

在附加到游戏中的脚本内部,该脚本也包含粒子系统组件。

答案 1 :(得分:1)

我想我知道你要做什么。您只想使用一个函数或属性来简化颜色设置。

您将使用当前代码收到此错误:

  

预期获取或设置访问者。

那是因为你没有实现set accesstor。

该属性应该是这样的:

private ParticleSystem trailPartical; 

public Color StartColor
{
    set
    {
        var main = trailPartical.main;
        main.startColor = value;
    }
}

...然后

void Start()
{
    trailPartical = GetComponent<ParticleSystem>();
    StartColor = Color.red;
}

这应该有效。

答案 2 :(得分:0)

如果有人想知道如何设置渐变:

ParticleSystem.MainModule psMain = GetComponent<ParticleSystem>().main;
psMain.startColor = new ParticleSystem.MinMaxGradient(Color.white, Color.red);