- 粒子系统 (Particle System) 主模块
- Emission 模块
- Shape 模块
- Velocity over Lifetime 模块
- Limit Velocity Over Lifetime 模块
- Inherit Velocity 模块
- Lifetime by Emitter Speed
- Force Over Lifetime 模块
- Color Over Lifetime 模块
- Color By Speed 模块
- Size over Lifetime 模块
- Size by Speed 模块
- Rotation Over Lifetime 模块
- Rotation By Speed 模块
- External Forces 模块
- Noise 模块
- Collision 模块
- Triggers 模块
- Sub Emitters 模块
- Texture Sheet Animation 模块
- Lights 模块
- Trails 模块
- Custom Data 模块
- Renderer 模块
- 粒子系统力场 (Particle System Force Field)
粒子系统 (Particle System) 主模块
属性 | 功能 |
---|---|
Duration | 系统运行的时间长度。 |
Looping | 如果启用此属性,系统将在其持续时间结束时再次启动并继续重复该循环。 |
Prewarm | 如果启用此属性,系统将初始化,就像已经完成一个完整周期一样(仅当 Looping 也启用时才有效)。 |
Start Delay | 启用此属性后,系统开始发射前将延迟一段时间(以秒为单位)。 |
Start Lifetime | 粒子的初始生命周期。 |
Start Speed | 每个粒子在适当方向的初始速度。 |
3D Start Size | 如果要分别控制每个轴的大小,请启用此属性。 |
Start Size | 每个粒子的初始大小。 |
3D Start Rotation | 如果要分别控制每个轴的旋转,请启用此属性。 |
Start Rotation | 每个粒子的初始旋转角度。 |
Flip Rotation | 使一些粒子以相反的方向旋转。 |
Start Color | 每个粒子的初始颜色。 |
Gravity Modifier | 缩放 Physics 窗口中设置的重力值。值为零会关闭重力。 |
Simulation Space | 控制粒子的运动位置是在父对象的局部空间中(因此与父对象一起移动)、在世界空间中还是相对于自定义对象(与您选择的自定义对象一起移动)。 |
Simulation Speed | 调整整个系统更新的速度。 |
Delta Time | 在 Scaled 和 Unscaled 之间进行选择,其中的 Scaled 使用 Time 窗口中的 Time Scale 值,而 Unscaled 将忽略该值。此属性对于出现在暂停菜单 (Pause Menu) 上的粒子系统非常有用。 |
Scaling Mode | 选择如何使用变换中的缩放。设置为 Hierarchy、Local 或 Shape。Local 仅应用粒子系统变换缩放,忽略任何父级。Shape 模式将缩放应用于粒子起始位置,但不影响粒子大小。 |
Play on Awake | 如果启用此属性,则粒子系统会在创建对象时自动启动。 |
Emitter Velocity | 选择粒子系统如何计算 Inherit Velocity 和 Emission 模块使用的速度。系统可使用刚体组件(如果存在)或通过跟踪变换组件的移动情况来计算速度。 |
Max Particles | 系统中同时允许的最多粒子数。如果达到限制,则移除一些粒子。 |
Auto Random Seed | 如果启用此属性,则每次播放时粒子系统看起来都会不同。设置为 false 时,每次播放时系统都完全相同。 |
Random Seed | 禁用自动随机种子时,此值用于创建唯一的可重复效果。 |
Stop Action | 当属于系统的所有粒子都已完成时,可使系统执行某种操作。当一个系统的所有粒子都已死亡,并且系统存活时间已超过 Duration 设定的值时,判定该系统已停止。对于循环系统,只有在通过脚本停止系统时才会发生这种情况。 |
Disable | 禁用游戏对象。 |
Destroy | 销毁游戏对象。 |
Callback | 将 OnParticleSystemStopped 回调发送给附加到游戏对象的任何脚本。 |
Culling Mode | 选择粒子在屏幕外时是否暂停粒子系统模拟。在屏幕外时进行剔除具有最高效率,但您可能希望继续进行非一次性 (off-one) 效果的模拟。 |
Automatic | 循环系统使用 Pause__,而所有其他系统使用 Always Simulate。 | | Pause And Catch-up | 系统在屏幕外时停止模拟。当重新进入视图时,模拟会执行一大步以到达在不暂停的情况下可实现的程度。在复杂系统中,此选项可能会导致性能尖峰。 | | Pause | 系统在屏幕外时停止模拟。 | | Always Simulate | 无论是否在屏幕上,系统始终处理每个帧的模拟。这对于烟花等一次性效果(在模拟过程中这些效果很明显)非常有用。 | | Ring Buffer Mode__ |
Disabled | 禁用 Ring Buffer Mode__,以便系统在粒子生命周期终结时删除粒子。 | | Pause Until Replaced | 在粒子生命周期结束时暂停旧粒子,直至达到 Max Particle__ 限制,此时系统会进行粒子再循环,因此旧粒子会重新显示为新粒子。 |
Loop Until Replaced | 在粒子生命周期结束时,粒子将倒回到其生命周期的指定比例,直至达到 Max Particle 限制,此时系统会进行粒子再循环,因此旧粒子会重新显示为新粒子。 |
Emission 模块
此模块中的属性会影响粒子系统发射的速率和时间。
属性 | 功能 |
---|---|
Rate over Time | 每个时间单位发射的粒子数。 |
Rate over Distance | 每个移动距离单位发射的粒子数。 |
Bursts | 爆发是指生成粒子的事件。通过这些设置可允许在指定时间发射粒子。 |
Time | 设置发射爆发粒子的时间(粒子系统开始播放后的秒数)。 |
Count | 设置可能发射的粒子数的值。 |
Cycles | 设置播放爆发次数的值。 |
Interval | 设置触发每个爆发周期的间隔时间(以秒为单位)的值。 |
Probability | 控制每个爆发事件生成粒子的可能性。较高的值使系统产生更多的粒子,而值为 1 将保证系统产生粒子。 |
Shape 模块
此模块用于定义可发射粒子的体积或表面以及起始速度的方向。Shape 属性定义发射体积的形状,其余模块属性根据您选择的 Shape 值而变化。
Velocity over Lifetime 模块
可控制粒子在其生命周期内的速度
属性 | 功能 |
---|---|
Linear X, Y, Z | 粒子在 X、Y 和 Z 轴上的线性速度。 |
Space | 指定 Linear X, Y, Z 轴是参照本地空间还是世界空间。 |
Orbital X, Y, Z | 粒子围绕 X、Y 和 Z 轴的轨道速度。 |
Offset X, Y, Z | 轨道中心的位置,适用于轨道运行粒子。 |
Radial | 粒子远离/朝向中心位置的径向速度。 |
Speed Modifier | 在当前行进方向上/周围向粒子的速度应用一个乘数。 |
Limit Velocity Over Lifetime 模块
此模块控制粒子的速度在其生命周期内如何降低。
属性 | 功能 |
---|---|
Separate Axes | 将轴拆分为单独的 X、Y 和 Z 分量。 |
Speed | 设置粒子的速度限制。 |
Space | 选择速度限制是适用局部空间还是世界空间。仅当启用了 Separate Axes 时,此选项才可用。 |
Dampen | 当粒子速度超过速度限制时,粒子速度降低的比例。 |
Drag | 对粒子速度施加线性阻力。 |
Multiply by Size | 启用此属性后,较大的粒子会更大程度上受到阻力系数的影响。 |
Multiply by Velocity | 启用此属性后,较快的粒子会更大程度上受到阻力系数的影响。 |
Inherit Velocity 模块
此模块控制粒子的速度如何随时间推移而受到其父对象移动的影响。
属性 | 功能 |
---|---|
Mode | 指定如何将发射器速度应用于粒子 |
Current | 发射器的当前速度将应用于每一帧上的所有粒子。例如,如果发射器减速,所有粒子也将减速。 |
Initial | 每个粒子出生时将施加一次发射器的速度。粒子出生后对发射器速度的任何改变都不会影响该粒子。 |
Multiplier | 粒子应该继承的发射器速度的比例。 |
这种效果对于从移动对象发射粒子非常有用,例如汽车产生的尘云、火箭产生的烟雾、蒸汽火车烟囱产生的蒸汽,或者粒子最初应以所在对象的速度百分比移动的任何情况。仅当 Simulation Space 在主模块中设置为 World 时,此模块才对粒子有影响。
Lifetime by Emitter Speed
该模块根据粒子生成时发射器的速度控制每个粒子的初始生命周期。它将粒子的初始生命周期乘以一个值,该值取决于产生它们的对象的速度。对于大多数粒子系统,此为游戏对象速度,但对于子发射器,速度来自子发射器粒子所源自的父粒子。
属性 | 功能 |
---|---|
Multiplier | 应用于粒子初始生命周期的乘数。该模块根据您设置的曲线模式以不同的方式使用此值。曲线模式为: &# 8226; Constant:使用您为此属性设置的常数乘数值。使用此曲线模式会忽略 Speed Range 属性。 • Curve:获取发射器的速度,根据 Speed Range 将其映射到 0 到 1 之间的值,然后使用归一化值对曲线进行采样。 • Random Between Two Constants:为每个粒子设置介于您为此属性设置的两个值之间的随机乘数。使用此曲线模式会忽略 Speed Range 属性。 • Random Between Two Curves:获取发射器的速度,根据 Speed Range 将其映射到 0 到 1 之间的值,然后使用归一化值对每条曲线进行采样。对于每个粒子,该模块将乘数设置为两个样本之间的随机值。 |
Speed Range | 粒子系统映射到 Multiplier 曲线的值的最小和最大发射器速度。如果发射器的速度等于第一个值,则乘数是曲线起始处的值。如果发射器的速度等于第二个值,则乘数是曲线末端的值。 此属性仅在 Multiplier 的曲线模式设置为 Curve 或者 Random Between Two Curves 时才相关。 |
Force Over Lifetime 模块
通过此模块中指定的力(例如风或吸力)可对粒子加速。
属性 | 功能 |
---|---|
X, Y, Z | 在 X、Y 和 Z 轴上施加到每个粒子的力。 |
Space | 选择是在局部空间还是在世界空间中施力。 |
Randomize | 使用 Two Constants 或 Two Curves 模式时,此属性会导致在每个帧上在定义的范围内选择新的作用力方向。因此会产生更动荡、更不稳定的运动。 |
Color Over Lifetime 模块
此模块指定粒子的颜色和透明度在其生命周期中如何变化。
属性: | 功能: |
---|---|
Color | 粒子在其生命周期内的颜色渐变。渐变条的左侧点表示粒子寿命的开始,而渐变条的右侧表示粒子寿命的结束。 |
Color By Speed 模块
在此模块中可设置粒子的颜色根据粒子速度(每秒的距离单位)变化。
属性 | 功能 |
---|---|
Color | 在速度范围内定义的粒子的颜色渐变。 |
Speed Range | 颜色渐变映射到的速度范围的下限和上限(超出范围的速度将映射到渐变的端点)。 |
Size over Lifetime 模块
许多效果涉及根据曲线改变粒子大小,这些设置可在此模块中进行。
属性 | 功能 |
---|---|
Separate Axes | 在每个轴上独立控制粒子大小。 |
Size | 通过一条曲线定义粒子的大小在其生命周期内如何变化。 |
详细信息
一些粒子通常会在远离发射点时发生大小变化,比如表示气体、火焰或烟雾的粒子。例如,随着时间的推移,烟雾往往会消散并占据更大的体积。为实现此目的,可将烟雾粒子的曲线设置为向上坡道曲线,随着粒子的存活时间而增加。此外还可使用 Color Over Lifetime 模块在烟雾蔓延时淡化烟雾,从而进一步增强此效果。
Size by Speed 模块
在此模块中可创建能够根据速度(每秒的距离单位)改变大小的粒子。
属性 | 功能 |
---|---|
Separate Axes | 在每个轴上独立控制粒子大小。 |
Size | 通过曲线定义粒子在速度范围内的大小。 |
Speed Range | 大小曲线映射到的速度范围的下限和上限(超出范围的速度将映射到曲线的端点)。 |
Rotation Over Lifetime 模块
在模块中可配置粒子在移动时旋转。
属性 | 功能 |
---|---|
Separate Axes | 允许根据每个轴指定旋转。启用此选项后,即可为 X、Y 和 Z 轴中的每个轴设置旋转。 |
Angular Velocity | 旋转速度(以度/秒为单位)。请参阅下文以了解更多信息。 |
Rotation By Speed 模块
在此模块中可设置粒子的旋转根据粒子速度(每秒的距离单位)变化。
属性 | 功能 |
---|---|
Separate Axes | 为每个旋转轴独立控制旋转。 |
Angular Velocity | 旋转速度(以度/秒为单位)。 |
Speed Range | 大小曲线映射到的速度范围的下限和上限(超出范围的速度将映射到曲线的端点)。 |
External Forces 模块
此属性可修改风区和粒子系统力场对系统发射的粒子的影响。
属性 | 功能 | |
---|---|---|
Multiplier | 应用于风区外力的比例值。 | |
Influence Filter | 选择是否基于层遮罩 (Layer Mask) 或通过显式列表 (List) 包含力场。 | |
List | 定义可影响此粒子系统的力场的显式列表。当 Influence Filter 设置为 List 时,将显示此属性。 | |
Influence Mask | 使用层遮罩来确定哪些力场影响此粒子系统。当 Influence Filter 设置为 Layer Mask 时,将显示此属性。 此属性在默认情况下设置为 Everything__,但您可以单独启用或禁用以下选项: - Nothing(自动取消勾选所有其他选项,将它们关闭) - **Everything(自动勾选所有其他选项,将它们打开) - Default__ - TransparentFX - Ignore Raycast - Water - UI** - PostProcessing |
Noise 模块
使用此模块可为粒子移动添加湍流。
属性 | 功能 |
---|---|
Separate Axes | 在每个轴上独立控制强度和重新映射。 |
Strength | 通过一条曲线定义噪声在粒子的生命周期内对粒子的影响有多强。值越高,粒子移动越快和越远。 |
Frequency | 低值会产生柔和、平滑的噪声,而高值会产生快速变化的噪声。此属性可控制粒子改变行进方向的频率以及方向变化的突然程度。 |
Scroll Speed | 随着时间的推移而移动噪声场可产生更不可预测和不稳定的粒子移动。 |
Damping | 启用此属性后,强度与频率成正比。将这些值绑在一起意味着可在保持相同行为但具有不同大小的同时缩放噪声场。 |
Octaves | 指定组合多少层重叠噪声来产生最终噪声值。使用更多层可提供更丰富、更有趣的噪声,但会显著增加性能成本。 |
Octave Multiplier | 对于每个附加的噪声层,按此比例降低强度。 |
Octave Scale | 对于每个附加的噪声层,按此乘数调整频率。 |
Quality | 较低的质量设置可显著降低性能成本,但也会影响噪声的有趣程度。请使用能为您提供所需行为的最低质量以获得最佳性能。 |
Remap | 将最终噪声值重新映射到不同的范围。 |
Remap Curve | 描述最终噪声值如何变换的曲线。例如,可使用此选项来创建从高点开始并以零结束的曲线,从而选择噪声场的较低范围并忽略较高范围。 |
Position Amount | 用于控制噪声对粒子位置影响程度的乘数。 |
Rotation Amount | 用于控制噪声对粒子旋转(以度/秒为单位)影响程度的乘数。 |
Size Amount | 用于控制噪声对粒子大小影响程度的乘数。 |
详细信息
为粒子添加噪声是创建有趣方案和效果的简单有效方法。例如,想象一下火焰中的余烬是如何移动的,或者烟雾在移动时是如何旋转的。强烈的高频噪声可用于模拟火焰余烬,而柔和的低频噪声更适合模拟烟雾效果。
为了最大程度控制噪声,可启用 Separate Axes 选项。此选项允许您在每个轴上独立控制强度和重新映射。
使用的噪声算法基于一种称为“卷曲噪声”(Curl Noise) 的技术,而该技术在内部使用多个柏林噪声 (Perlin Noise) 样本来创建最终噪声场。
Quality 窗口中的设置控制着生成的独特噪声样本数量。使用 Medium 和 Low 设置时,使用的柏林噪声样本较少,这些样本将在多个轴上重用,但会组合在一起以尽可能进行重用并隐藏这样的重用。这意味着当使用较低质量的设置时,噪声可能看起来不那么动态和多样化。但是,使用较低质量的设置时,可以获得显著的性能优势。
Collision 模块
此模块控制粒子如何与场景中的游戏对象碰撞。使用第一个下拉选单可定义碰撞设置是应用于 Planes 还是应用于 World。如果选择 World__,请使用 Collision Mode__ 下拉选单定义碰撞设置是应用于 2D 还是 3D 世界。
Planes 模块属性
属性 | 功能 |
---|---|
Planes 弹出菜单 | 选择 Planes 模式。 |
Planes | 用于定义碰撞平面的变换的可扩展列表。 |
Visualization | 选择要将 Scene 视图中的碰撞平面辅助图标显示为线框网格还是实体平面。 |
Scale Plane | 用于可视化的平面大小。 |
Dampen | 粒子碰撞后损失的速度比例。 |
Bounce | 粒子碰撞后从表面反弹的速度比例。 |
Lifetime Loss | 粒子碰撞后损失的总生命周期比例。 |
Min Kill Speed | 碰撞后运动速度低于此速度的粒子将从系统中予以移除。 |
Max Kill Speed | 碰撞后运动速度高于此速度的粒子将从系统中予以移除。 |
Radius Scale | 允许调整粒子碰撞球体的半径,使其更贴近粒子图形的可视边缘。 |
Send Collision Messages | 如果启用此属性,则可从脚本中通过 OnParticleCollision 函数检测粒子碰撞。 |
Visualize Bounds | 在 Scene 视图中将每个粒子的碰撞边界渲染为线框形状。 |
World 模块属性
属性 | 功能 |
---|---|
World 弹出菜单 | 选择 World 模式。 |
Collision Mode | 3D 或 2D。 |
Dampen | 粒子碰撞后损失的速度比例。 |
Bounce | 粒子碰撞后从表面反弹的速度比例。 |
Lifetime Loss | 粒子碰撞后损失的总生命周期比例。 |
Min Kill Speed | 碰撞后运动速度低于此速度的粒子将从系统中予以移除。 |
Max Kill Speed | 碰撞后运动速度高于此速度的粒子将从系统中予以移除。 |
Radius Scale | 2D 或 3D 的设置。 |
Collision Quality | 使用下拉选单来设置粒子碰撞的质量。此设置会影响有多少粒子可以穿过碰撞体。在较低的质量水平下,粒子有时会穿过碰撞体,但需要的计算资源较少。 |
High | 当 Collision Quality 设置为 High 时,碰撞始终使用物理系统来检测碰撞结果。此设置是最耗费资源但也是最准确的选项。 |
Medium (Static Colliders) | 当 Collision Quality 设置为 Medium (Static Colliders) 时,碰撞使用一组体素来缓存先前的碰撞,从而在以后的帧中更快地重用。请参阅下方的世界碰撞以了解与此缓存相关的更多信息。 Medium 和 Low 之间的唯一区别是粒子系统在每帧查询物理系统的次数。Medium 每帧的查询次数多于 Low。 请注意,此设置仅适用于从不移动的静态碰撞体。 |
Low (Static Colliders) | 当 Collision Quality 设置为 Low (Static Colliders) 时,碰撞使用一组体素来缓存先前的碰撞,从而在以后的帧中更快地重用。请参阅下方的世界碰撞以了解与此缓存相关的更多信息。 Medium 和 Low 之间的唯一区别是粒子系统在每帧查询物理系统的次数。Medium 每帧的查询次数多于 Low。 请注意,此设置仅适用于从不移动的静态碰撞体。 |
Collides With | 粒子只会与所选层上的对象发生碰撞。 |
Max Collision Shapes | 粒子碰撞可包括的碰撞形状个数。多余的形状将被忽略,且地形优先。 |
Enable Dynamic Colliders | 允许粒子也与动态对象碰撞(否则仅使用静态对象)。 |
Enable Dynamic Colliders | 动态碰撞体是未配置为 Kinematic 的任何碰撞体(请参阅碰撞体 相关文档了解有关碰撞体类型的更多信息)。选中此选项可将这些碰撞体类型包含在粒子发生碰撞时响应的对象组内。如果取消选中此选项,粒子仅响应与静态碰撞体的碰撞。 |
Voxel Size | 体素 (voxel) 表示三维空间中的常规网格上的值。使用 Medium 或 Low 质量碰撞时,Unity 会在网格结构中缓存碰撞。此设置控制着网格大小。较小的值可提供更高的准确性,但会占用更多内存,效率也会降低。 |
注意:仅当 Collision Quality 设置为 Medium 或 Low 时,才能访问此属性。 | | Collider Force | 在粒子碰撞后对物理碰撞体施力。这对于用粒子推动碰撞体很有用。 | | Multiply by Collision Angle | 向碰撞体施力时,根据粒子与碰撞体之间的碰撞角度来缩放力的强度。掠射角将比正面碰撞产生更小的力。 | | Multiply by Particle Speed | 向碰撞体施力时,根据粒子的速度来缩放力的强度。快速移动的粒子会比较慢的粒子产生更大的力。 | | Multiply by Particle Size | 向碰撞体施力时,根据粒子的大小来缩放力的强度。较大的粒子会比较小的粒子产生更大的力。 | | Send Collision Messages | 如果选中此复选框,则允许从脚本中通过 OnParticleCollision 函数检测粒子碰撞。 | | Visualize Bounds | 在 Scene 视图中预览每个粒子的碰撞球体。 |
Triggers 模块
内置粒子系统的 Triggers 模块可用于基于粒子与场景中一个或多个碰撞体的相互作用来访问和修改粒子。启用此模块时,粒子系统将在附加的脚本上调用 OnParticleTrigger() 回调,因此可以根据粒子相对于场景中碰撞体的位置来访问粒子列表。
属性 | 描述 |
---|---|
Inside | 指定粒子系统在粒子位于碰撞体内的每一帧对粒子采取的操作。选项包括: • Callback:将粒子添加到可在 OnParticleTrigger() 回调中获取的列表中 • Kill:销毁粒子。 • Ignore:忽略粒子。 |
Outside | 指定粒子系统在粒子位于碰撞体外的每一帧对粒子采取的操作。选项包括: • Callback:将粒子添加到可在 OnParticleTrigger() 回调中获取的列表中 • Kill:销毁粒子。 • Ignore:忽略粒子。 |
Enter | 指定粒子系统在粒子进入碰撞体的帧对粒子采取的操作。选项包括: • Callback:将粒子添加到可在 OnParticleTrigger() 回调中获取的列表中 • Kill:销毁粒子。 • Ignore:忽略粒子。 |
Exit | 指定粒子系统在粒子退出碰撞体的帧对粒子采取的操作。选项包括: • Callback:将粒子添加到可在 OnParticleTrigger() 回调中获取的列表中 • Kill:销毁粒子。 • Ignore:忽略粒子。 |
Collider Query Mode | 指定此粒子系统用于获取有关与粒子交互的碰撞体的信息的方法。这增加了处理触发器模块所需的资源,因此,如果不需要任何额外的碰撞信息,请将此属性设置为 Disabled。选项是: • Disabled:没有获取关于每个粒子与哪个碰撞体交互的任何信息。 • One:获取有关每个粒子交互的第一个碰撞体的信息。如果粒子与帧中的多个碰撞体交互,则返回 Collider 列表中与粒子交互的第一个碰撞体。 • All:获取有关每个粒子交互的每个碰撞体的信息。 |
Radius Scale | 粒子的碰撞体边界。允许您更紧密地将粒子的碰撞体边界匹配到粒子的视觉外观。如果粒子为圆形且其纹理具有淡入淡出效果,这将很有用,因为默认粒子碰撞体将在粒子达到视觉效果之前位于触发器内。请注意,当事件实际触发时,此设置不会更改,但是可以延迟或提前达到触发器的视觉效果。 |
• 输入 1 可以使粒子碰撞体保持同一大小,并使事件在粒子接触碰撞体时发生
• 输入小于 1 的值可以使粒子碰撞体更小,并使触发看起来是在粒子穿透碰撞体之前发生
• 输入大于 1 的值可以使粒子碰撞体更大,并使触发看起来是在粒子穿透碰撞体之后发生 |
| Visualize Bounds | 指示是否在 Scene 视图中显示每个粒子的碰撞体边界。启用此属性可显示碰撞体边界,而禁用则可隐藏碰撞体边界。 |
Sub Emitters 模块
在此模块中可设置子发射器。这些子发射器是在粒子生命周期的某些阶段在粒子位置处创建的附加粒子发射器。
Texture Sheet Animation 模块
粒子的图形不必是静止图像。此模块允许您将纹理视为可作为动画帧进行播放的一组单独子图像。
Grid 模式属性
属性 | 功能 |
---|---|
Mode 弹出菜单 | 选择 Grid 模式。 |
Tiles | 纹理在 X(水平)和 Y(垂直)方向上划分的区块数量。 |
动画 (Animation) | Animation 模式可设置为 Whole Sheet 或 Single Row__(即精灵图集的每一行代表一个单独的动画序列)。 | | Time Mode| 选择粒子系统如何在动画中对帧进行采样。 | | Lifetime| 在粒子的生命周期内使用动画曲线对帧进行采样。 | | Speed| 根据粒子的速度对帧进行采样。速度范围指定选择帧的最小和最大速度范围。 | | FPS| 根据指定的每秒帧数值对帧进行采样。 | | Row Mode| 使粒子系统从纹理帧中选择一行以生成动画。仅当 Animation__ 模式设置为 Single Row 时,此属性才可用。 |
Custom | 将纹理帧的特定行用于动画。 |
Random | 为每个粒子随机选择一行来生成动画。 |
Mesh Index | 根据分配给粒子的网格索引 (Mesh Index) 选择一行。需要确保使用特定网格的粒子也要使用相同的纹理时,此功能很有用。 |
Random Row | 随机从精灵图集选择一行以生成动画。仅当 Animation 模式设置为 Single Row 时,此选项才可用。 |
Row | 从精灵图集选择特定行以生成动画。仅当选择 Single Row 模式且禁用 Random Row 时,此选项才可用。 |
Frame over Time | 通过一条曲线指定动画帧随着时间的推移如何增加。 |
Start Frame | 允许指定粒子动画应从哪个帧开始(对于在每个粒子上随机定相动画非常有用)。 |
Cycles | 动画序列在粒子生命周期内重复的次数。 |
Affected UV Channels | 允许具体指定粒子系统影响的 UV 流。 |
Sprite 模式属性
属性 | 功能 |
---|---|
Mode 弹出菜单 | 选择 Sprites 模式。 |
Frame over Time | 通过一条曲线指定动画帧随着时间的推移如何增加。 |
Start Frame | 允许指定粒子动画应从哪个帧开始(对于在每个粒子上随机定相动画非常有用)。 |
Cycles | 动画序列在粒子生命周期内重复的次数。 |
Enabled UV Channels | 允许具体指定粒子系统影响的 UV 流。 |
Lights 模块
使用此模块可将实时光照添加到一部分粒子。
属性 | 功能 |
---|---|
Light | 分配一个光照 预制件来描述粒子光照外观。 |
Ratio | 一个介于 0 和 1 之间的值,表示将接受光照的粒子的比例。 |
Random Distribution | 选择是随机分配还是定期分配光照。设置为 true 时,每个粒子都有根据 Ratio 值随机接受光照的机会。较高的值可增加粒子接受光照的概率。设置为 false 时,由 Ratio 控制新创建的粒子接受光照的频率(例如,每第 N 个粒子将接受光照)。 |
Use Particle Color | 设置为 True 时,光照的最终颜色将通过其附加到的粒子的颜色进行调制。如果设置为 False,则使用光照颜色而不进行任何修改。 |
Size Affects Range | 启用此属性后,在光照中指定的范围 (Range) 将受到粒子大小的影响。 |
Alpha Affects Intensity | 启用此属性后,光照的强度 (Intensity) 将受到粒子 Alpha 值的影响。 |
Range Multiplier | 使用此曲线在粒子的生命周期内将一个自定义乘数应用于光照范围。 |
Intensity Multiplier | 使用此曲线在粒子的生命周期内将一个自定义乘数应用于光照强度。 |
Maximum Lights | 使用此设置可避免意外创建大量光照,大量光照可能会使 Editor 无响应或使应用程序运行速度非常慢。 |
Trails 模块
使用此模块可将轨迹添加到一部分粒子。此模块与轨迹渲染器 (Trail Renderer) 组件共享许多属性,但提供了将轨迹轻松附加到粒子以及从粒子继承各种属性的功能。轨迹可用于各种效果,例如子弹、烟雾和魔法视觉效果
属性: | 功能: |
---|---|
Mode | 选择如何为粒子系统生成轨迹。 - Particle 模式可创建每个粒子在自身路径中留下固定轨迹的效果。 - Ribbon 模式可创建根据存活时间连接每个粒子的轨迹带。 |
Ratio | 一个介于 0 和 1 之间的值,表示已分配轨迹的粒子的比例。Unity 随机分配轨迹,因此该值表示概率。 |
Lifetime | 轨迹中每个顶点的生命周期,表示为所属粒子的生命周期的乘数。当每个新顶点添加到轨迹时,该顶点将在其存在时间超过其总生命周期后消失。 |
Minimum Vertex Distance | 定义粒子在其轨迹接收新顶点之前必须经过的距离。 |
World Space | 启用此属性后,即便使用 Local Simulation Space__,轨迹顶点也不会相对于粒子系统的游戏对象移动。相反,轨迹顶点将被置于世界空间中,并忽略粒子系统的任何移动。 | | Die With Particles| 如果选中此框,轨迹会在粒子死亡时立即消失。如果未选中此框,则剩余的轨迹将根据自身的剩余生命周期自然到期。 | | Ribbon Count| 选择要在整个粒子系统中渲染的轨迹带数量。值为 1 将创建连接每个粒子的单个轨迹带。但是,大于 1 的值将创建连接每第 N 个粒子的轨迹带。例如,使用值 2 时,将有一条轨迹带连接粒子 1、3、5,另一条轨迹带连接粒子 2、4、6,以此类推。粒子的排序取决于它们的存活时间。 | | Split Sub Emitter Ribbons| 在用作子发射器的系统上启用此属性时,从同一父系统粒子生成的粒子将共享一个轨迹带。 | | Texture Mode| 选择应用于轨迹的纹理是沿其整个长度拉伸,还是重复每 N 个距离单位。重复率是基于 Material__ 中的 Tiling 参数进行控制的。 |
Size affects Width | 如果启用此属性(选中复选框),则轨迹宽度受粒子大小影响。 |
Size affects Lifetime | 如果启用此属性(选中复选框),则轨迹生命周期受粒子大小影响。 |
Inherit Particle Color | 如果启用此属性(选中复选框),则轨迹颜色由粒子颜色调制。 |
Color over Lifetime | 通过一条曲线控制整个轨迹在其附着粒子的整个生命周期内的颜色。 |
Width over Trail | 通过一条曲线控制轨迹沿其长度的宽度。 |
Color over Trail | 通过一条曲线控制轨迹沿其长度的颜色。 |
Generate Lighting Data | 通过启用此属性(选中复选框),可在构建轨迹几何体时包含法线和切线。这样允许它们使用具有场景光照的材质,例如通过标准着色器,或通过使用自定义着色器。 |
Custom Data 模块
Custom Data 模块允许您在 Editor 中定义要附加到粒子的自定义数据格式。您也可以在脚本中进行此设置。有关如何在脚本中设置自定义数据并将该数据发送到着色器的更多信息,请参阅粒子系统顶点流的相关文档。
Renderer 模块
Renderer 模块的设置决定了粒子的图像或网格如何被其他粒子变换、着色和过度绘制。
属性 | 功能 |
---|---|
Render Mode | 如何从图形图像(或网格)生成渲染图像。请参阅下面的详细信息以了解更多信息。 |
Billboard | 粒子呈现为公告牌并面向您在 Render Alignment 中指定的方向。 |
Stretched Billboard | 粒子面向摄像机,但会应用各种缩放(参阅下文)。 |
Camera Scale | 根据摄像机运动拉伸粒子。将此值设置为 0 可禁用摄像机运动拉伸。 |
Velocity Scale | 根据粒子速度按比例拉伸粒子。将此值设置为 0 可禁用基于速度的拉伸。 |
Length Scale | 沿着粒子的速度方向根据粒子当前大小按比例拉伸粒子。将此值设置为 0 会使粒子消失,相当于 0 长度。 |
Freeform Stretching | 指示粒子是否应使用自由形式拉伸。通过这种拉伸行为,当正面查看粒子时,粒子不会变薄。 |
Rotate With Stretch | 指示是否根据粒子的拉伸方向旋转粒子。这是在其他粒子旋转的基础上添加的。此属性仅在 Freeform Stretching 启用时有效。如果禁用 Freeform Stretching,粒子总是根据它们拉伸的方向旋转,即使 Rotate With Stretch 已禁用也是如此。 |
Horizontal Billboard | 粒子平面与 XZ“地板”平面平行。 |
Vertical Billboard | 粒子在世界 Y 轴上直立,但转向面向摄像机。 |
Mesh | 从 3D 网格而非从纹理渲染粒子。 |
None | 使用 Trails 模块时,如果只想渲染轨迹并隐藏默认渲染,则可使用此属性。 |
Normal Direction | 用于粒子图形的光照法线的偏差。值为 1.0 表示法线指向摄像机,而值为 0.0 表示法线指向屏幕中心(仅限公告牌模式)。 |
Material | 用于渲染粒子的材质。 |
Trail Material | 用于渲染粒子轨迹的材质。仅当启用了 Trails 模块时,此选项才可用。 |
Sort Mode | 绘制粒子(因此覆盖粒子)的顺序。可能的值为 By Distance (from the Camera)、Oldest in Front 和 Youngest in Front。系统中的每个粒子都将根据此设置进行排序。 |
Sorting Fudge | 粒子系统排序的偏差。较低的值会增加粒子系统在其他透明游戏对象(包括其他粒子系统)上绘制的相对几率。此设置仅影响整个系统在场景中的显示位置,而不会对系统中的单个粒子执行排序。 |
Min Particle Size | 最小粒子大小(无论其他设置如何),表示为视口大小的一个比例。请注意,仅当 Rendering Mode 设置为 Billboard 时,才应用此设置。 |
Max Particle Size | 最大粒子大小(无论其他设置如何),表示为视口大小的一个比例。请注意,仅当 Rendering Mode 设置为 Billboard 时,才应用此设置。 |
Render Alignment | 使用下拉选单选择粒子公告牌面向的方向。 |
View | 粒子面向摄像机平面。 |
World | 粒子与世界轴对齐。 |
Local | 粒子与游戏对象的变换组件对齐。 |
Facing | 粒子面向摄像机游戏对象的直接位置。 |
Velocity | 粒子面向其速度方向。 |
Enable GPU Instancing | 控制是否要使用 GPU 实例化来渲染粒子系统。需要使用网格渲染模式并使用兼容的着色器。有关更多详细信息,请参阅粒子网格 GPU 实例化。 |
Flip | 在指定轴上镜像一定比例的粒子。较高的值会翻转更多的粒子。 |
Allow Roll | 控制面向摄像机的粒子是否可以围绕摄像机的 Z 轴旋转。禁用此属性对于 VR 应用特别有用,因为在此应用中 HMD 滚动可能会给粒子系统带来不良后果。 |
Pivot | 修改旋转粒子的中心轴心点。此值是粒子大小的乘数。 |
Visualize Pivot | 在 Scene 视图中预览粒子轴心点。 |
Masking | 设置粒子系统渲染的粒子在与精灵遮罩交互时的行为方式。 |
No Masking | 粒子系统不与场景中的任何精灵遮罩交互。这是默认选项。 |
Visible Inside Mask | 粒子在由精灵遮罩覆盖的地方是可见的,而在遮罩外部不可见。 |
Visible Outside Mask | 粒子在精灵遮罩外部是可见的,而在遮罩内部不可见。精灵遮罩会隐藏其覆盖的粒子部分。 |
Apply Active Color Space | 在线性颜色空间中渲染时,系统会在将粒子颜色上传到 GPU 之前从伽马空间转换粒子颜色。 |
Custom Vertex Streams | 配置材质的顶点着色器中可用的粒子属性。有关更多详细信息,请参阅粒子顶点流。 |
Cast Shadows | 如果启用此属性,阴影投射光源照在粒子系统上时将产生阴影。 |
On | 选择 On 启用阴影。 |
Off | 选择 Off 禁用阴影。 |
Two-Sided | 选择 Two Sided 允许从网格的任一侧投射阴影(这意味着不考虑背面剔除)。 |
Shadows Only | 选择 Shadows Only 使阴影可见,但网格本身不可见。 |
Shadow Bias | 沿着光照方向移动阴影以消除因使用公告牌来模拟体积而导致的阴影瑕疵。 |
Receive Shadows | 决定阴影是否可投射到粒子上。只有不透明材质才能接受阴影。 |
Sorting Layer | 渲染器排序图层的名称。 |
Order in Layer | 此渲染器在排序图层中的顺序。 |
Light Probes | 基于探针的光照插值模式。 |
Reflection Probes | 如果启用此属性,并且场景中存在反射探针,则会为此游戏对象拾取反射纹理,并将此纹理设置为内置的着色器 uniform 变量。 |
Anchor Override | 使用光照探针或反射探针系统时用变换来确定插值位置。 |
1.Billboard 模式适合用于表示从任何方向看起来大致相同的体积的粒子(例如云)。
2.Horizontal Billboard 模式可在粒子覆盖地面时(例如目标指示器和魔法效果)或者是平行于地面飞行或浮动的扁平对象时(例如飞镖)使用。
3.Vertical Billboard 模式使每个粒子保持直立并垂直于 XZ 平面,但允许粒子围绕其 y 轴旋转。使用正交摄像机并希望粒子大小保持一致时,此模式可能会有用。
4.Stretched Billboard 模式通过与传统动画器使用的“拉伸或挤压”技术类似的方式突出粒子的表观速度。请注意,在 Stretched Billboard 模式下,粒子将看齐面向摄像机,并且还向粒子速度看齐。无论 Velocity Scale 值如何,都会发生此看齐;即使 Velocity Scale 设置为 0,此模式下的粒子仍然向速度看齐。
Normal Direction 可用于在扁平矩形公告牌上创建球形阴影。如果使用的材质将光照应用于粒子,此设置有助于创建 3D 粒子的视觉效果。此设置仅与 Billboard 渲染模式结合使用。
粒子系统力场 (Particle System Force Field)
Particle System Force Field 组件将力应用于粒子系统中的粒子。要将此组件附加到粒子系统,请在粒子系统中启用 External Forces 模块,并指定 Layer Mask 或特定的 Force Field 组件。