我想通过代码处理粒子系统。如果父级立方体的高度为10个单位,则粒子系统应自行计算startLifeTime(以达到立方体的顶部)。
所以..我使用的计算是
startLifetime = cubeHeight / startSpeed
现在代码
private void Start()
{
Vector3 liftScale = transform.localScale; // The scaling of my object
ParticleSystem.ShapeModule particleShape = liftParticles.GetComponent<ParticleSystem>().shape; // reference to the shape
particleShape.radius = liftScale.x > liftScale.z ? liftScale.x : liftScale.z; // set the radius
ParticleSystem.MainModule particleMain = liftParticles.GetComponent<ParticleSystem>().main; // reference to the PS.main
particleMain.startLifetime = liftScale.y / particleMain.startSpeed; // set the startLifetime
}
使用此代码时,编译器会说
运算符不能应用于'float'类型的操作数 'ParticleSystem.MinMaxCurve'
那么如何计算liftScale.y / particleMain.startSpeed
?
答案 0 :(得分:1)
您需要使用particleMain.startSpeed.constant
。
答案 1 :(得分:0)
这意味着particleMain.startSpeed具有MinMaxCurve类型。 尝试用particleMain.startSpeedMultiplier替换它。