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 生命周期结束,或被碰撞规则移除时。碰撞导致的 Death 带有接触点。
CollisionParent Particle 与实心表面发生一次新撞击时。静止贴在表面上不会重复触发。
FirstCollisionParent Particle 第一次撞击时。
Tick按配置的 Tick Interval 重复。
TriggerEnterParent Particle 进入触发器碰撞体,或进入触发器模式下的实体时。
TriggerExitParent Particle 离开触发器时。
自 2.2.9 TriggerEnter 与 TriggerExit。Changed 2.2.9 Collision 每次新撞击只触发一次。2.2.9 之前,粒子持续被挡住时可能每 tick 都触发一次。

哪些撞击和碰撞死亡会被报告,取决于发射器的 碰撞事件选项(最小冲击速度、去重)。

每个条目包含目标 Emitter 引用、Event、Probability、Tick Interval,以及 Color、Size、Rotation、Lifetime 和 Duration 的继承开关。条目还为碰撞、触发器和 Death 事件提供接触相关选项:

自 2.2.9
设置默认值含义
在接触点生成(Spawn At Contact)新条目开启在粒子接触的位置生成,而不是在粒子中心。2.2.9 之前保存的条目仍在中心生成。
对齐法线(Align To Normal)关旋转生成的效果,使其 +Y 沿表面法线。
表面(Surface)Any只在接触 Blocks、Fluids、Entities 或 Colliders 时触发。没有接触点的 Death 只能通过 Any。Birth 和 Tick 忽略此选项。
表面方块(Surface Blocks)空配合 Blocks 或 Fluids 使用:只限这些方块,填写 id 或 #tag。为空表示任意方块。

接触如何转换为事件,见 粒子碰撞。

查找与引用 ​

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.