orillusion icon indicating copy to clipboard operation
orillusion copied to clipboard

[FR]: 如果需要动态修改粒子大小有现成的方法可以调用吗?

Open YBbread opened this issue 1 year ago • 6 comments

因为想节省初始化时间和场景资源,场景内已创建的粒子可以进行修改发射时和结束时的大小 或 颜色吗?

YBbread avatar Jan 25 '24 01:01 YBbread

先将想修改属性的组件保存到一个变量中,随后在回调事件中修改即可。看下面这两个小栗子,按下qwer上面的1234键看效果。 https://codepen.io/OriIIusion/pen/zYbEPpp https://codepen.io/OriIIusion/pen/VwRMrxg

OriIIusion avatar Jan 25 '24 02:01 OriIIusion

先将想修改属性的组件保存到一个变量中,随后在回调事件中修改即可。看下面这两个小栗子,按下qwer上面的1234键看效果。 https://codepen.io/OriIIusion/pen/zYbEPpp https://codepen.io/OriIIusion/pen/VwRMrxg

蟹蟹~ 很感谢。
但我根据栗子用法尝试修改ParticleOverLifeScaleModule模块粒子的初始和结束时大小却修改不到。比如我是这样

this.OverLifeScaleModule = simulator.addModule(ParticleOverLifeScaleModule); this.OverLifeScaleModule = [ new Vector4(0.1, 0.1,0.1), new Vector4(0.1,0.1,0.1) ];

然后在事件中进行回调 this.OverLifeScaleModule = [ new Vector4(10, 10,10), new Vector4(1,1, 1) ];

没有修改成功,是我的写法有问题吗?

YBbread avatar Jan 25 '24 03:01 YBbread

你可以先看看控制台有没有报错。 OverLifeScaleModule是一个模块,你想修改的那个大小,应该是下面这样写。 overLifeScaleModule.scaleSegments = [new Vector4(1, 1, 1), new Vector4(3, 3, 3)]; 粗心了哦

OriIIusion avatar Jan 25 '24 03:01 OriIIusion

你可以先看看控制台有没有报错。 OverLifeScaleModule是一个模块,你想修改的那个大小,应该是下面这样写。 overLifeScaleModule.scaleSegments = [new Vector4(1, 1, 1), new Vector4(3, 3, 3)]; 粗心了哦

啊啊啊啊啊啊啊~~~好了~~ (^3^) (^3^) (^3^)

YBbread avatar Jan 25 '24 03:01 YBbread

想再追问下,修改发射器半径时。似乎会导致粒子重置发射,缺少了变大变小时的过渡效果,这个会尝试更新吗

YBbread avatar Jan 25 '24 04:01 YBbread

不清楚哎,我也是新手

OriIIusion avatar Jan 25 '24 05:01 OriIIusion