C# 如何更改粒子系统的开始颜色
所以我只是试图通过脚本简单地更改粒子系统的开始颜色,但它不起作用C# 如何更改粒子系统的开始颜色,c#,unity3d,unity5,C#,Unity3d,Unity5,所以我只是试图通过脚本简单地更改粒子系统的开始颜色,但它不起作用 private ParticleSystem trailPartical; // The particle system public Color StartColor { var main = trailPartical.main; main.startColor = value; } 这根本不起作用,我也尝试过降价版本: trailParticle.startColor = valu
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
ParticleSystem.main模块main=GetComponent().main;
main.startColor=Color.blue;// 我想我知道你想做什么。只需一个函数或属性即可简化颜色设置
您当前的代码将出现此错误:
需要获取或设置访问器
这是因为您没有实现set访问器
该属性应如下所示:
private ParticleSystem trailPartical;
public Color StartColor
{
set
{
var main = trailPartical.main;
main.startColor = value;
}
}
然后
void Start()
{
trailPartical = GetComponent<ParticleSystem>();
StartColor = Color.red;
}
void Start()
{
trailpartial=GetComponent();
StartColor=Color.red;
}
这应该行得通 如果有人想知道如何设置梯度:
ParticleSystem.MainModule psMain = GetComponent<ParticleSystem>().main;
psMain.startColor = new ParticleSystem.MinMaxGradient(Color.white, Color.red);
ParticleSystem.main模块psMain=GetComponent().main;
psMain.startColor=新粒子系统.MinMaxGradient(Color.white,Color.red);
这很管用,但你知道我为什么不能用Setter方法实现吗?我必须专门为此制作一个方法,将颜色作为参数。@BenjaFriend程序员提供的另一个答案向您展示了如何做到这一点。