# 粒子系统概览
# 概述
粒子系统 Particle
是继承自MeshRenderer的 Component
组件,可挂载到 entity 上。粒子系统用于模拟一些视觉特效,如火花、刀光、雷电、云、雾、尘、雪、发光轨迹等。
粒子系统内设有不同的功能模块,可组合实现不同的粒子效果。粒子系统面板如下图:
可以点击下载工具新手引导,直接在工具中按流程学习。
# 组件概要
Particle -> MeshRenderer -> Component -> Object
# 仪表盘
粒子系统的仪表板如上图所示,其中Particle Player具有播放、停止播放粒子特效的功能,Particle Count表示当前的粒子个数。Playback Time表示从粒子系统开始播放到当前的时间。若勾选“仅播放所选中的粒子”表示每次只播放所选中的粒子,否则,将播放该粒子及其所有的子粒子组件。
# 烘培模式
使用烘培模式,可极大提升粒子系统在真机上的运行性能。
烘培模式的限制:
- 当 emitter 模块中的 looping 属性为 true 且 common 模块中的startLifeTime 大于 duration 时,不支持使用烘培模式。
- 当 common 模块的 simulationSpace 属性为 Wrold 时,不支持使用烘培模式。
- 若使用烘培模式,不允许在运行时对粒子系统的属性进行修改。
- 若使用烘培模式,无法保证粒子发射时的位置、速度的完全随机。
- 在工具中,若从“不使用烘培模式”修改为“使用烘培模式”,需保存后,再次打开该场景才可生效。
# 组件模块
模块名 | 说明 | 类型 |
---|---|---|
common | 通用模块,用于设置基础属性 (必要模块)。 | engine.Particle.ParticleCommon |
emitter | 发射器模块,用于设置发射数量以及发射时机相关属性 (必要模块)。 | engine.Particle.ParticleEmitter |
renderer | 渲染模块,用于设置类型和渲染相关相关属性 (必要模块)。 | engine.Particle.ParticleRenderer |
emitterShape | 发射器形状模块,用于设置粒子发射器形状位置大小等属性。 | engine.Particle.ParticleEmitterShape |
subEmitters | 子发射器模块,用于设定子发射器,可在粒子生命周期的某一阶段发射其他粒子。 | engine.Particle.ParticleSubEmitters |
rotationByLife | 旋转模块,用于设置粒子生命周期中旋转变化相关的属性。 | engine.Particle.ParticleRotationByLife |
sizeByLife | 大小模块,用于设置粒子生命周期中大小变化相关的属性。 | engine.Particle.ParticleSizeByLife |
speedByLife | 速度模块,用于设置粒子生命周期中运动速度变化相关的属性。 | engine.Particle.ParticleSpeedByLife |
speedLimitByLife | 速度限制模块,用于设置粒子生命周期中运动速度限制相关的属性,与speedByLife模块一起决定粒子的速度大小。 | engine.Particle.ParticleSpeedLimitByLife |
colorByLife | 颜色模块,用于设置粒子生命周期中颜色变化的属性。 | engine.Particle.ParticleColorByLife |
textureSheetAnimation | 贴图动画模块,用户设置贴图动画相关属性。 | engine.Particle.ParticleTextureSheetAnimation |
noise | 噪声模块,用于添加扰动粒子运动。 | engine.Particle.ParticleNoise |
# 控制粒子播放代码示例
const particleComp = entity.getComponent(engine.Particle);
particleComp.play(); // 开始播放该粒子组件以及所有子节点的粒子组件
particleComp.stop(); // 停止播放该粒子组件以及所有子节点的粒子组件