Skip to content

Trail 与 Sub Emitter

使用 Photon 制作的多阶段烟花效果

Birth、Tick、Collision 与 Death 事件可以把多个 Emitter 串成图中的多阶段烟花。

Particle Emitter 可以为每个 Particle 创建次级几何体和次级 Emitter。它们能够继承 Particle 状态,因此很强大,但也会成倍增加模拟和渲染工作。

Particle Trail

开启 Trails 后,可以为一定比例的 Particle 附加 Trail。

设置用途
ratio获得 Trail 的 Particle 比例。
lifetimeTrail Lifetime Function。
dieWithParticles与所属 Particle 同时移除,或让 Trail 自然消散。
sizeAffectsWidth把 Particle Size 乘到宽度。
sizeAffectsLifetime把 Particle Size 乘到 Trail Lifetime。
inheritParticleColor把 Particle Color 乘到 Trail Color。
colorOverLifetimeTrail 生命周期中的颜色。
trailType选择 Trail 实现/渲染几何体。

Trail 有自己的 Material/Renderer 路径。因此一个 Particle Emitter 可能把 Tile Particle 和 Trail Particle 送入不同的有效 Render Pass。

Sub Emitter Event

Event触发时机
BirthParent Particle 创建时。
DeathParent Particle 结束时。
CollisionParent Particle 报告碰撞时。
Tick按配置的 Tick Interval 重复。

每个条目包含目标 Emitter 引用、Event、Probability、Tick Interval,以及 Color、Size、Rotation、Lifetime 和 Duration 的继承开关。

查找与引用

Sub Emitter 引用同一 FX Runtime 中的另一个 Emitter。目标应使用清晰且唯一的名称,并放在合理的层级位置。Photon 会解析并缓存目标查找,也支持大型 Hierarchy。

避免递归爆炸

Emitter 生成自己,或两个 Emitter 互相生成,会导致数量无限增长。Probability 和 Interval 不能让意外循环变安全。使用无环链,并设置保守的 Max Particle Count。

Parallel Update

Worker Update 中产生的 Sub Emitter 请求会排队,并由所属 Emitter 安全应用。自定义代码不能从 Worker Thread 直接修改另一个 Emitter 的 Particle Collection。

Released under the MIT License.