unity 代码缩放粒子
·
别的文章里所直接缩放粒子物体的tranform,这是错误的,并不能影响粒子本身大小
关于main模块
我们应该修改startSize来修改发射出的粒子的大小
粒子系统是由多个模块组成的,除了表面上Emission,Shape这些模块,还有第一个没有显示名字的模块叫main,startSize是main模块的属性

startSize的类型为ParticleSystem.MinMaxCurve,这个类型既可以直接用数字赋值,也可以用一个ParticleSystem.MinMaxCurve类型赋值,可以接受不同的是为了应对不同的情况
粒子组件中指定粒子初始大小为一个整数时,可以直接用mian.startSzi=1赋值,以下是使用dotween的示例

public ParticleSystem ps;
private ParticleSystem.MainModule main;
void Start()
{
main = ps.main;
////火焰逐渐减小
DOTween.To(() => main.startSize.constant, v => main.startSize = v, 0f, 20);
}
粒子组件中指定粒子初始大小为随机大小时,可以声明一个ParticleSystem.MinMaxCurve类型的对象,并修改对象的最大值和最小值,然后赋值给粒子系统,以下是使用dotween的示例
startSize的类型为RandomBetweenTwoConstants

public ParticleSystem ps;
private ParticleSystem.MainModule main;
private ParticleSystem.MinMaxCurve curve;
void Start()
{
main = ps.main;
curve = main.startSize;//获取当前粒子的随机大小
////火焰逐渐减小 分别修改最大值和最小值
DOTween.To(() => curve.constantMin, v => curve.constantMin = v, 0f, 20);
DOTween.To(() => curve.constantMax, v => curve.constantMax = v, 0f, 20)};
}
private void Update()
{
main.startSize = curve;//将随机大小赋值回粒子系统
}
更多推荐


所有评论(0)