粒子系统概览

概述

粒子系统 Particle 是继承自MeshRenderer的 Component 组件,可挂载到 entity 上。粒子系统用于模拟一些视觉特效,如火花、刀光、雷电、云、雾、尘、雪、发光轨迹等。

粒子系统内设有不同的功能模块,可组合实现不同的粒子效果。粒子系统面板如下图:

image.png

组件概要

Particle -> MeshRenderer -> Component -> Object

仪表盘

image.png

粒子系统的仪表板如上图所示,其中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; // 停止播放