# 粒子系统概览
# 概述
粒子系统 Particle
是继承自MeshRenderer的 Component
组件,可挂载到 entity 上。粒子系统用于模拟一些视觉特效,如火花、刀光、雷电、云、雾、尘、雪、发光轨迹等。
粒子系统内设有不同的功能模块,可组合实现不同的粒子效果。粒子系统面板如下图:
# 组件概要
Particle -> MeshRenderer -> Component -> Object
# 仪表盘
粒子系统的仪表板如上图所示,其中Particle Player具有播放、停止播放粒子特效的功能,Particle Count表示当前的粒子个数。Playback Time表示从粒子系统开始播放到当前的时间。
# 烘培模式
使用烘培模式,可提升粒子系统在真机上的运行性能。
烘培模式的限制:
- 当 emitter 模块中的 looping 属性为 true,或 common 模块的 simulationSpace 属性为 Wrold 时,暂不支持使用烘培模式。
- 若使用烘培模式,不允许在运行时对粒子系统的属性进行修改。
- 若使用烘培模式,无法保证粒子发射时的位置、速度的完全随机。
- 在工具中,若从“不使用烘培模式”修改为“使用烘培模式”,需保存后,再次打开该场景才可生效。
# 组件模块
模块名 | 说明 | 类型 |
---|---|---|
common | 通用模块,用于设置基础属性 (必要模块)。 | engine.Particle.ParticleCommon |
emitter | 发射器模块,用于设置发射数量以及发射时机相关属性 (必要模块)。 | engine.Particle.ParticleEmitter |
renderer | 渲染模块,用于设置类型和渲染相关相关属性 (必要模块)。 | engine.Particle.ParticleRenderer |
emitterShape | 发射器形状模块,用于设置粒子发射器形状位置大小等属性。 | engine.Particle.ParticleEmitterShape |
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 |
# 控制粒子播放代码示例
const particleComp = entity.getComponent(engine.Particle);
particleComp.emitter.start = true; // 开始播放
particleComp.emitter.start = false; // 停止播放