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

问题描述 投票:-1回答:3

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

 private ParticleSystem trailPartical;   // The  particle system

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

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

 trailParticle.startColor = value;
c# unity3d unity5
3个回答
4
投票

您尝试使用StartColor作为方法,通过{}内部的代码判断,即使您将其声明为变量。

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

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

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


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;
}

这应该工作。


0
投票

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

ParticleSystem.MainModule psMain = GetComponent<ParticleSystem>().main;
psMain.startColor = new ParticleSystem.MinMaxGradient(Color.white, Color.red);
© www.soinside.com 2019 - 2024. All rights reserved.