什么是粒子系统:
__粒子__是由粒子系统大量呈现或移动的简单小型图像或网格。每个粒子代表一小部分流体或无定形实体,而众多粒子将共同营造出完整的实物感。以烟幕云团为例,每个粒子都具备细小烟雾的质感,自身形态类似于微型云团。在场景内,大量的这些微型云团通过排列组合,营造出体积更大的整体云团效果。
属性
属性 | 功能 |
---|---|
Duration | 系统运行的时间长度。 |
Looping | 如果启用此属性,系统将在其持续时间结束时再次启动并继续重复该循环。 |
Prewarm | 如果启用此属性,系统将初始化,就像已经完成一个完整周期一样(仅当 Looping 也启用时才有效)。 |
Start Delay | 启用此属性后,系统开始发射前将延迟一段时间(以秒为单位)。 |
Start Lifetime | 粒子的初始生命周期。 |
Start Speed | 每个粒子在适当方向的初始速度。大于0时,向外移动,小于0时向内移动(吸的效果)。 |
3D Start Size | 如果要分别控制每个轴的大小,请启用此属性。 |
Start Size | 每个粒子的初始大小。 |
3D Start Rotation | 如果要分别控制每个轴的旋转,请启用此属性。 |
Start Rotation | 每个粒子的初始旋转角度。 |
Randomize Rotation Direction | 使一些粒子以相反的方向旋转。 |
Start Color | 每个粒子的初始颜色。 |
Gravity Modifier | 缩放 Physics Manager 中设置的重力值。值为零会关闭重力。 |
Simulation Space | 控制粒子的运动位置是在父对象的局部空间中(因此与父对象一起移动)、在世界空间中还是相对于自定义对象(与您选择的自定义对象一起移动)。属性确定粒子是随粒子系统父对象移动、随自定义对象移动还是在游戏世界中独立移动 |
Simulation Speed | 调整整个系统更新的速度。 |
Delta Time | 在 Scaled 和 Unscaled 之间进行选择,其中的 Scaled 使用时间管理器 (Time Manager) 中的 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 | 选择当粒子不在屏幕上时是否暂停粒子系统模拟。 在屏幕外时最有效的剔除方法是,但您可能需要继续模拟一种非效果。 |
Automatic | 循环系统使用”Pause'',而所有其他系统始终使用“ Always Simulate''。 |
Pause And Catch-up | 屏幕外时,系统停止模拟。 重新进入视图时,模拟将执行一个较大的步骤,以达到不暂停视图的原样。 在复杂的系统中,此选项可能会导致性能峰值。 |
Pause | 屏幕外时,系统停止模拟。 |
Always Simulate | 无论是否在屏幕上,系统都会在每个帧上处理其仿真。 这对于单次拍摄的效果(例如烟花)非常有用,在仿真过程中这种效果很明显。 |
Ring Buffer Mode | 使粒子保持活动状态,直到达到“最大粒子数''为止,此时新粒子将回收最旧的粒子,而不是在其寿命到期时移除粒子。 |
Disabled | 禁用环缓冲模式,因此系统会在使用寿命结束时移除颗粒。 |
Pause Until Replaced | 在寿命到期时暂停旧粒子,直到达到“最大粒子”限制,此时系统将其回收,因此它们会作为新粒子重新出现。 |
Loop Until Replaced | 在使用寿命结束时,粒子会倒退到其使用寿命的指定比例,直到达到“最大粒子”限制,此时系统将其回收,因此它们会重新显示为新粒子。 |
Emission 模块
此模块中的属性会影响粒子系统发射的速率和时间。
属性
属性 | 功能 |
---|---|
Rate over Time | 每个时间单位发射的粒子数。 |
Rate over Distance | 每个移动距离单位发射的粒子数。 |
Bursts | 爆发是指生成粒子的事件。通过这些设置可允许在指定时间发射粒子。 |
Time | 设置发射爆发粒子的时间(粒子系统开始播放后的秒数)。 |
Count | 设置可能发射的粒子数的值。 |
Cycles | 设置播放爆发次数的值。 |
Interval | 设置触发每个爆发周期的间隔时间(以秒为单位)的值。 |
根据曲线,发射速率可以是恒定的,也可以在系统的生命周期内变化。如果激活 Rate over Distance 模式,则父对象移动的每个距离单位将释放一定数量的粒子。此模式对于模拟实际由对象运动产生的粒子非常有用(例如,泥路上车轮留下的尘土)。
如果激活 Rate over Time 模式,则无论父对象如何移动,每秒都会发射所需数量的粒子。此外,还可添加在特定时间出现的额外粒子爆发(例如,蒸汽火车烟囱产生一股股的烟雾)。
粒子系统 Shape 模块
此模块用于定义可发射粒子的体积或表面以及起始速度的方向。Shape 属性定义发射体积的形状,其余模块属性根据您选择的 Shape 值而变化。
所有形状(Mesh 除外)都具有定义其大小的属性,例如 Radius 属性。要编辑这些属性,请在 Scene 视图中拖动线框发射器形状上的控制柄。形状的选择会影响可发射粒子的区域,但也会影响粒子的初始方向。例如,__球体 (Sphere)__ 向外向各个方向发射粒子,__锥体 (Cone)__ 发射发散的粒子流,而__网格 (Mesh)__ 在垂直于表面的方向上发射粒子。
以下部分将详细介绍每种__形状__的属性。
Shape 模块中的形状
Sphere、Hemisphere
注意:Sphere 和 Hemisphere 具有相同的属性。
属性 | 功能 |
---|---|
Shape | 发射体积的形状。 |
Sphere | 在所有方向均匀发射粒子。 |
Hemisphere | 在平面其中一面的所有方向均匀发射粒子。 |
Radius | 形状的圆形半径。 |
Radius Thickness | 发射粒子的体积比例。值为 0 表示从形状的外表面发射粒子。值为 1 表示从整个体积发射粒子。介于两者之间的值将使用体积的一定比例。 |
Texture | 用于为粒子着色和丢弃粒子的纹理。 |
Clip Channel(新版本无) | 纹理中用于丢弃粒子的通道。 |
Clip Threshold(新版本无) | 将粒子映射到纹理上的位置时,丢弃像素颜色低于此阈值的所有粒子。 |
Color affects Particles(新版本无) | 粒子颜色受纹理颜色影响。 |
Alpha affects Particles(新版本无) | 粒子 Alpha 受纹理 Alpha 影响。 |
Bilinear Filtering(新版本无) | 在读取纹理时,无论纹理尺寸如何,均组合 4 个相邻样本以获得更平滑的粒子颜色变化。 |
Position | 将一个偏移应用于生成粒子的发射器形状。 |
Rotation | 旋转生成粒子的发射器形状。 |
Scale | 更改生成粒子的发射器形状的大小。 |
Align to Direction | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在__主__模块中应用 Start Rotation 值来覆盖该设置。 |
Randomize Direction | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机。 |
Spherize Direction | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同)。 |
Randomize Position | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性。 |
Cone
设置为 Cone 模式的 Shape 模块
属性 | 功能 |
---|---|
Shape | 发射体积的形状。 |
Cone | 从锥体的底部或主体发射粒子。根据粒子与锥体中心线的距离按比例发射粒子。 |
Angle | 锥体在其顶点处的角度。角度为 0 时产生圆柱体,角度为 90 度时产生圆盘。 |
Radius | 形状的圆形半径。 |
Radius Thickness | 发射粒子的体积比例。值为 0 表示从形状的外表面发射粒子。值为 1 表示从整个体积发射粒子。介于两者之间的值将使用体积的一定比例。 |
Arc | 形成发射器形状的整圆的角部。 |
Mode | 定义 Unity 如何在形状的弧形周围生成粒子。当此选项设置为 Random 时,Unity 在弧形周围随机生成粒子。如果使用 Loop__,Unity 会在形状的弧形周围依序生成粒子,并在每个周期结束时循环回到起点。Ping-Pong__ 与 Loop 基本相同,不同之处在于每个连续循环的发生方向与上一个循环相反。最后,__Burst Spread__ 模式在形状周围均匀分布粒子生成位置。此模式可提供均匀的粒子扩散,不同于默认的随机化行为,默认情况下的粒子可能不均匀地聚集在一起。Burst Spread 最适合与爆发发射一起使用。 |
Spread | 弧形周围可产生粒子的离散间隔。例如,值为 0 表示允许在弧形周围的任何位置生成粒子,值为 0.1 表示仅在形状周围以 10% 的间隔生成粒子。 |
Speed | 发射位置围绕弧形移动的速度。使用值字段旁边的小黑色下拉菜单将此属性设置为 Constant 可使值始终保持不变,而设置为 Curve 可使值随时间变化。仅当 Mode 设置为 Random 以外的其他设置时,此选项才可用 |
Length | 锥体的长度。仅当 Emit from: 属性设置为 Volume 时,此选项才适用。 |
Emit from: | 锥体发射粒子的部分:__Base__ 或 Volume。 |
Box
设置为 Box 模式的 Shape 模块
属性 | 功能 |
---|---|
Shape | 发射体积的形状。 |
Box | 从盒体形状的边、表面或主体发射粒子。粒子在发射器对象的前向 (Z) 方向上移动。 |
Emit from: | 选择盒体发射粒子的部分:__Edge、Shell__ 或 Volume。 |
Mesh、MeshRenderer、SkinnedMeshRenderer
设置为 Mesh 模式的 Shape 模块
Mesh、MeshRenderer 和 SkinnedMeshRenderer 具有相同的属性。
属性 | 功能 |
---|---|
Shape | 发射体积的形状。 |
Mesh | 从 Inspector 中提供的任意网格形状发射粒子。 |
MeshRenderer | 从引用的游戏对象网格渲染器 (Mesh Renderer) 发射粒子。 |
SkinnedMeshRenderer | 从引用的游戏对象带蒙皮的网格渲染器 (Skinned Mesh Renderer) 发射粒子。 |
type | 指定从何处发射粒子。选择 Vertex 表示从顶点发射粒子,__Edge__ 表示从边发射粒子,__Triangle__ 表示从三角形发射粒子。默认情况下,此设置为 Vertex。 |
Mesh | 提供发射器形状的网格。 |
Single Material | 指定是否从特定子网格(由材质索引号标识)发射粒子。如果启用此属性,则会显示一个数字字段,您可以使用该字段指定材质索引号。 |
Use Mesh Colors | 使用网格顶点颜色调整粒子颜色,或者,如果顶点颜色不存在,则使用材质中的着色器颜色属性“Color“或”TintColor”。 |
Normal Offset | 在距离网格表面多远处发射粒子(在表面法线的方向上) |
Circle
设置为 Circle 模式的 Shape 模块
属性 |
---|