Version: Unity 6.0 (6000.0)
语言 : 中文
配置粒子
配置全局粒子属性

粒子发射和发射器

了解粒子发射以及 Unity 如何通过粒子系统模块管理粒子发射。

发射速率

根据曲线,发射速率可以是恒定的,也可以在系统的生命周期内变化。如果激活发射模块随移动距离产生的粒子数 (Rate over Distance) 模式,则父对象移动的每个距离单位将释放一定数量的粒子。此模式对于模拟实际由对象运动产生的粒子非常有用(例如,泥路上车轮留下的尘土)。

如果激活__随单位时间产生的粒子数 (Rate over Time)__ 模式,则无论父对象如何移动,每秒都会发射所需数量的粒子。此外,还可添加在特定时间出现的额外粒子爆发(例如,蒸汽火车烟囱产生一股股的烟雾)。

发射器形状

形状 (Shape) 模块用于定义可发射粒子的体积或表面以及起始速度的方向。形状 (Shape) 属性定义发射体积的形状,其余模块属性根据您选择的形状 (Shape) 值而变化。

所有形状(网格 (Mesh) 除外)都具有定义其大小的属性,例如__半径 (Radius)__ 属性。要编辑这些属性,请在场景视图中拖动线框发射器形状上的控制柄。形状的选择会影响可发射粒子的区域,但也会影响粒子的初始方向。例如,__球体 (Sphere)__ 向外向各个方向发射粒子,__锥体 (Cone)__ 发射发散的粒子流,而__网格 (Mesh)__ 在垂直于表面的方向上发射粒子。

配置基于网格的发射器形状

您可以通过选中__单一材质 (Single Material)__ 属性来选择仅从特定材质(子网格)发射粒子,并可通过选中__法线偏移 (Normal Offset)__ 属性来沿着网格法线偏移发射位置。

要忽略网格的颜色,请选中__使用网格颜色 (Use Mesh Colors)__ 属性。要从网格读取纹理颜色,请将要读取的纹理分配给__纹理 (Texture)__ 属性。

网格必须设置为“读/写启用”才能在粒子系统上工作。如果在编辑器中分配网格,Unity 会为您进行此处理。但如果要在运行时分配不同的网格,则需要选中__导入设置 (Import Settings)__ 中的读/写启用 (Read/Write Enabled) 设置。

模式 (Mode) 属性允许粒子系统以可预测的顺序在网格表面上发射粒子。从顶点发射时,此属性允许从网格顶点数组中的下一个顶点发射每个新粒子。从边缘发射时,粒子系统可以沿着网格的三角形/线条的边缘平滑地发射粒子。

基于发射器速度的粒子生命周期

基于发射器速度的生存期 (Lifetime by Emitter Speed) 根据粒子生成时发射器的速度控制每个粒子的初始生命周期。它将粒子的初始生命周期乘以一个值,该值取决于产生它们的对象的速度。对于大多数粒子系统,此为游戏对象速度,但对于子发射器,速度来自子发射器粒子所源自的父粒子。

其他粒子的粒子发射

许多类型的粒子都会在其生命周期的不同阶段产生一些效果,而这也可使用粒子系统子发射器来实现。例如,子弹离开枪管时可能伴随着一缕烟尘,火球可能会在撞击时爆炸。您可以使用子发射器来创建诸如此类的效果。

子发射器是在场景中创建的或来自预制件的普通粒子系统对象。这意味着子发射器还可以有自己的子发射器(这种类型的布置对于像烟花这样的复杂效果很有用)。但是,虽然使用子发射器生成大量粒子非常容易,但这可能非常耗费资源。

要触发子发射器,可使用以下条件:

  • 出生 (Birth):粒子的创建时间。
  • 碰撞 (Collision):粒子与对象发生碰撞的时间。
  • 死亡 (Death):粒子的销毁时间。
  • 触发 (Trigger):粒子与触发碰撞体相互作用的时间。
  • 手动 (Manual):仅在通过脚本进行请求时触发。请参阅 ParticleSystem.TriggerSubEmitter

请注意,__碰撞 (Collision)触发 (Trigger)死亡 (Death)__ 和__手动 (Manual)__ 事件只能使用发射 (Emission) 模块中的爆发发射。

此外,还可使用__继承 (Inherit)__ 选项将属性从父粒子转移到每个新创建的粒子。可转移属性包括大小、旋转、颜色和生命周期。要控制速度的继承方式,请在子发射器系统上配置继承速度 (Inherit Velocity) 模块。

还可以通过设置__发射概率 (Emit Probability)__ 属性来配置子发射器事件的触发概率。值为 1 可以保证事件将触发,而更小的值则会降低概率。

其他资源

配置粒子
配置全局粒子属性