Appearance
粒子系统
系统概览
环境粒子系统。生成各种环境粒子效果(雪花、花瓣、雨滴、光点等),增强场景氛围。 支持风力驱动粒子运动,与 splash(水滴溅射)联动。
核心职责
env-particles.ts— 粒子发射器创建、类型切换、参数/纹理/风力更新、splash 管理、资源释放。
对外 API(全量导出)
本文件 9 个直接导出 + 2 个 re-export(来自
env-wetness.ts,ADR-160 湿身联动),与symbols字段一致。
直接导出(env-particles.ts)
createParticleEmitter(type: EnvState['particleType'], windEnabled: boolean): void— 按类型创建粒子发射器;系统挂到_envSys.particles.system,返回 void 而非ParticleSystem(见 invariant)。disposeParticles(keepWetness = false): void— 释放粒子发射器(可选保留湿身效果)。getCurrentParticleType(): EnvState['particleType']— 取当前粒子类型。updateParticleWind(): void— 按envState增量更新风力。updateParticleParams(): void— 按envState增量更新粒子参数。updateParticleTexture(): void— 按envState增量更新粒子纹理。syncSplashState(): void— 同步 splash(水滴溅射)状态。disposeSplash(): void— 释放 splash 粒子。applyWindToParticles(ps: ParticleSystem): void— 对指定粒子系统施加风力。
re-export(env-wetness.ts,ADR-160)
isWetnessActive(): boolean— 湿身效果是否激活。applyWetnessToInst(inst: ModelInstance): void— 对模型实例施加湿身效果。
与其他子系统关系
- 被
env-impl.ts调用初始化。 - 参数来源:
envState.particles。
不变量
- 粒子发射器在
disposeParticles中释放,避免内存泄漏。 - 粒子数量根据性能等级动态调整。