如何更改粒子系统的起始颜色
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);
所以我只是想通过脚本简单地更改粒子系统的起始颜色,但它不起作用。
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);