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

How to change the Start color of the Particle System

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

 private ParticleSystem trailPartical;   // The  particle system

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

这个根本不行,我也试过折旧版:

 trailParticle.startColor = value;

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

除此错误外,由于ParticleSystem发生了一些变化,需要访问组件的主模块:

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

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

我想我知道你想做什么。您想仅使用一个函数或 属性.

来简化颜色设置

您将在当前代码中遇到此错误:

A get or set accessor expected.

那是因为你没有实现 set 访问器。

那个属性应该是这样的:

private ParticleSystem trailPartical; 

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

然后...

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

这应该有效。

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

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