Particle System
文章过长,可能有所疏忽-最后更新:2022.08.11
前言
粒子系统组件具有许多属性,为方便起见,检查器
将它们组织成多个称为“模块”的可折叠部分
要展开和折叠模块,请单击显示模块名称的栏。使用左侧的复选框可启用或禁用该模块中属性的功能
Open Editor(打开编辑器)
按钮在单独的 Editor 窗口中显示选项,可让您一次性编辑多个系统
在本文中表格属性处黑体为一级属性,斜体为属性选项,无字体为二级属性
另:粒子系统属性设置一般单位为秒
创建
在层级
右击,选择效果-粒子系统
场景面板
Scene(场景)
视图中的Particle Effect(粒子效果)
面板包含一些关于预览粒子系统的附加选项
属性 | 功能 |
Simulate Layers(模拟层) | 预览未选定的粒子系统。默认情况下,只有选定的粒子系统才能在场景 视图中播放。但是,将Simulate Layers 设置为Nothing 以外的任何其他选项时,与Layer Mask 匹配的效果会自动播放,而无需您选择它们。这对于预览环境效果特别有用 |
Resimulate(重新模拟) | 启用此属性后,粒子系统会立即将属性更改应用于已生成的粒子。禁用此属性后,粒子系统会按原样保留现有粒子,仅将属性更改应用于新粒子 |
Show Bounds(显示边界) | 启用此属性后,Unity 显示选定粒子系统的包围体积。这些边界可确定粒子系统当前是否在屏幕上 |
Show Only Selected(仅显示已选择) | 启用此属性后,Unity 隐藏所有非选定粒子系统,便于专注产生单一效果 |
Particle System(粒子系统)主模块
Particle System
模块包含影响整个系统的全局属性。大多数这些属性用于控制新创建的粒子的初始状态。要展开和折叠主模块,请单击Inspector(检查器)
窗口中的Particle System
栏
属性 | 功能 |
Duration(持续时间) | 粒子系统运行的时间长度,或者说周期,不同于粒子本身的生命周期 |
Looping(循环播放) | 如果启用此属性,粒子系统将在其持续时间结束时再次启动并继续重复该循环 |
Prewarm(预热) | 如果启用此属性,系统将初始化,就像已经完成一个完整周期一样。仅在Looping 勾选时可用 |
Start Delay(启动延迟) | 启用此属性后,粒子系统开始发射前将延迟一段时间(以秒为单位)。若Prewarm 勾选则不可用 |
Start Lifetime(初始生命周期) | 粒子的初始生命周期。即粒子存在的时间 |
Start Speed(初始速度) | 粒子发射时的初始速度 |
3D Start Size(3D初始尺寸) | 勾选则下一项Start Size 可从X(宽度)Y(高度)Z(深度)轴控制。Z(深度)仅适用于3D网格粒子 |
Start Size(初始尺寸) | 每个粒子的初始大小。即粒子发射时大小 |
3D Start Rotation(3D初始旋转) | 勾选则下一项Start Rotation 可从XYZ轴控制 |
Start Rotation(初始旋转) | 每个粒子的初始旋转角度。即粒子发射时旋转的角度 |
Flip Rotation(翻转旋转) | 使一些粒子以相反的方向旋转。只有0 和1 表示关闭与开启 |
Start Color(初始颜色) | 每个粒子的初始颜色 |
Gravity Modifier(重力修改器) | 粒子受重力影响程度。缩放Physics 窗口(Edit-Project Settings-Physics) 中设置的重力值。值为零会关闭重力 |
Simulation Space(模拟空间) | 粒子模拟空间。粒子跟随哪个物品一起移动 |
Local(局部) | 父对象的局部空间中(因此与父对象一起移动) |
World(世界) | 在世界空间中独立移动,即粒子发射后不随物体移动 |
Custom(自定义) | 相对于自定义对象(与您选择的自定义对象一起移动) |
Simulation Speed(模拟速度) | 调整整个系统更新的速度,或者说播放速度 |
Delta Time(时间查) | 在Scaled 和Unscaled 之间进行选择。此属性对于出现在暂停菜单上的粒子系统非常有用 |
Scaled | 使用Time(Edit-Project Settings-Time)窗口 中的Time Scale(时间尺度) 值 |
Unscaled | 忽略该值 |
Scaling Mode(缩放模式) | 选择如何使用变换中的缩放,或者说粒子跟随什么放大缩小 |
Hierarch(层级) | 相对于Local ,粒子所在父级也会影响粒子大小 |
Local(局部) | 仅应用粒子系统变换缩放,忽略任何父级,即仅跟随粒子所在物品放大缩小 |
Shape(形状) | 将缩放应用于粒子起始位置,但不影响粒子大小 |
Play on Awake(唤醒时播放) | 粒子系统被创造出来时,会自动产生粒子 |
Emitter Velocity(发射器速度) | 选择粒子系统如何计算Inherit Velocity 和Emission 模块使用的速度 |
Transform | 通过跟踪变换组件的移动情况来计算速度 |
Rigidbody | 系统可使用刚体组件(如果存在)来计算速度 |
Max Particles(最大粒子) | 系统中同时允许的最多粒子数。如果达到限制,则移除一些粒子 |
Auto Random Seed(自动随机种子) | 如果启用此属性,则每次播放时粒子系统看起来都会不同。设置为false 时,每次播放时系统都完全相同 |
Random Seed(随机种子) | 禁用自动随机种子时,此值用于创建唯一的可重复效果 |
Stop Action(停止行动) | 当属于系统的所有粒子都已完成时,可使系统执行某种操作。当一个系统的所有粒子都已死亡,并且系统存活时间已超过Duration 设定的值时,判定该系统已停止。对于循环系统,只有在通过脚本停止系统时才会发生这种情况 |
none(无) | 无 |
Disable(禁用) | 禁用游戏对象 |
Destroy(销毁) | 销毁游戏对象 |
Callback(回调) | 将OnParticleSystemStopped 回调发送给附加到游戏对象的任何脚本 |
Culling Mode(剔除模式) | 选择粒子在屏幕外时是否暂停粒子系统模拟。在屏幕外时进行剔除具有最高效率,但您可能希望继续进行非一次性 (off-one) 效果的模拟 |
Automatic(自动) | 循环系统使用Pause ,而所有其他系统使用Always Simulate |
Pause And Catch-up(暂停和追赶) | 统在屏幕外时停止模拟。当重新进入视图时,模拟会执行一大步以到达在不暂停的情况下可实现的程度。在复杂系统中,此选项可能会导致性能尖峰 |
Pause(暂停) | 系统在屏幕外时停止模拟 |
Always Simulate(始终模拟) | 无论是否在屏幕上,系统始终处理每个帧的模拟。这对于烟花等一次性效果(在模拟过程中这些效果很明显)非常有用 |
Ring Buffer Mode(环状缓冲模式) | 保持粒子存活直到它们达到Max Particles 计数,此时新粒子会取代最早的粒子,而不是在它们的寿命终结时才删除粒子 |
Disabled(已禁用) | 禁用Ring Buffer Mode ,以便系统在粒子生命周期终结时删除粒子 |
Pause Until Replaced(暂停直到替换) | 在粒子生命周期结束时暂停旧粒子,直至达到Max Particle 限制,此时系统会进行粒子再循环,因此旧粒子会重新显示为新粒子 |
Loop Until Replaced(循环直到替换) | 在粒子生命周期结束时,粒子将倒回到其生命周期的指定比例,直至达到Max Particle 限制,此时系统会进行粒子再循环,因此旧粒子会重新显示为新粒子 |
右方下拉菜单
许多属性的右方有下拉菜单,可进行生命周期内调整
数值
属性 | 功能 |
Constant(常量) | 粒子属性一直保持此数值,以秒为单位 |
Curve(曲线) | 粒子属性可设定为在粒子的生命周期内变化。检查器 底部会出现一个曲线编辑器,可用于控制粒子在整个生命周期内的属性变化情况。如果勾选了分离轴 相关复选框,则可为每个 X、Y 和 Z 轴赋予曲线属性值 |
Random Between Two Constants(两常数间随机) | 设置两个数值,允许粒子属性在它们之间随机取值 |
Random Between Two Curves(两曲线间随机) | 粒子属性可设定为在粒子的生命周期(由曲线指定)内变化。在此模式下,两条曲线均为可编辑状态,每个粒子将在您定义的这两条曲线的范围之间选择一条随机曲线 |
颜色
属性 | 描述 |
颜色 | 设置一个颜色,粒子属性一直保持此颜色 |
渐变 | 粒子属性可设定为在粒子的生命周期内变化 |
双色间随机 | 设置两个颜色,允许粒子属性在它们之间随机取颜色值 |
双渐变间随机 | 粒子属性可设定为在粒子的生命周期(由曲线指定)内变化。在此模式下,两条渐变均为可编辑状态,每个粒子将在您定义的这两条渐变的范围之间选择一条随机渐变 |
随机颜色 | 在渐变中随机选取一个颜色 |
关于渐变
上方为透明度,下方为颜色,单击增加点,每行可添加点上限为8
渐变条的左侧点表示粒子寿命的开始,而渐变条的右侧表示粒子寿命的结束
Emission(发射)
此模块中的属性会影响粒子系统发射的速率和时间
属性 | 功能 |
Rate over Time(随单位时间产生的粒子数) | 每个时间单位发射的粒子数 |
Rate over Distance(随移动距离产生的粒子数) | 每个移动距离单位发射的粒子数 |
Bursts(爆发) | 爆发是指生成粒子的事件。通过这些设置可允许在指定时间发射粒子 |
Time(时间) | 设置发射爆发粒子的时间(粒子系统开始播放后的秒数) |
Count(数量) | 设置可能发射的粒子数的值 |
Cycles(周期) | 设置播放爆发次数的值<br />右方下拉菜单可选择无穷大或数量 |
Interval(间隔) | 设置触发每个爆发周期的间隔时间(以秒为单位)的值 |
Probability(概率) | 控制每个爆发事件生成粒子的可能性,较高的值使系统产生更多的粒子,而值为1 将保证系统产生粒子 |
Shape(形状)
此模块用于定义可发射粒子的体积或表面以及起始速度的方向
<!-- tabs:start -->
Sphere类
Sphere球体、Hemisphere半球
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Sphere(球体) | 在所有方向均匀发射粒子 |
Hemisphere(半球) | 在平面其中一面的所有方向均匀发射粒子 |
Radius(半径) | 形状的圆形半径 |
Radius Thickness(半径厚度) | 发射粒子的体积比例。值为 0 表示从形状的外表面发射粒子。值为 1 表示从整个体积发射粒子。介于两者之间的值将使用体积的一定比例 |
Arc(弧度) | 形成发射器形状的整圆的角部 |
Mode | 定义 Unity 如何在形状的弧形周围生成粒子 |
Random(随机) | 在弧形周围随机生成粒子 |
Loop(循环) | 在形状的弧形周围依序生成粒子,并在每个周期结束时循环回到起点 |
Ping-Pong(乒乓) | 与Loop 基本相同,不同之处在于每个连续循环的发生方向与上一个循环相反 |
Burst Spread(突发扩张) | 在形状周围均匀分布粒子生成位置。此模式可提供均匀的粒子扩散,不同于默认的随机化行为,默认情况下的粒子可能不均匀地聚集在一起。最适合与爆发发射一起使用 |
Spread | 弧形周围可产生粒子的离散间隔。例如,值为 0 表示允许在弧形周围的任何位置生成粒子,值为 0.1 表示仅在形状周围以 10% 的间隔生成粒子 |
Speed | 发射位置围绕弧形移动的速度。仅当Mode 为Loop 和Ping-Pong 时可用。使用值字段旁边的小黑色下拉菜单将此属性设置为Constant(常量) 可使值始终保持不变,而设置为Curve(曲线) 可使值随时间变化 |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
Cone
Cone(锥体)
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Cone(锥体) | 从锥体的底部或主体发射粒子。根据粒子与锥体中心线的距离按比例发射粒子 |
Angle(角度) | 锥体在其顶点处的角度。角度为 0 时产生圆柱体,角度为 90 度时产生圆盘 |
Radius(半径) | 形状的圆形半径 |
Radius Thickness(半径厚度) | 发射粒子的体积比例。值为 0 表示从形状的外表面发射粒子。值为 1 表示从整个体积发射粒子。介于两者之间的值将使用体积的一定比例 |
Arc(弧度) | 形成发射器形状的整圆的角部 |
Mode | 定义 Unity 如何在形状的弧形周围生成粒子 |
Random(随机) | 在弧形周围随机生成粒子 |
Loop(循环) | 在形状的弧形周围依序生成粒子,并在每个周期结束时循环回到起点 |
Ping-Pong(乒乓) | 与Loop 基本相同,不同之处在于每个连续循环的发生方向与上一个循环相反 |
Burst Spread(突发扩张) | 在形状周围均匀分布粒子生成位置。此模式可提供均匀的粒子扩散,不同于默认的随机化行为,默认情况下的粒子可能不均匀地聚集在一起。最适合与爆发发射一起使用 |
Spread | 弧形周围可产生粒子的离散间隔。例如,值为 0 表示允许在弧形周围的任何位置生成粒子,值为 0.1 表示仅在形状周围以 10% 的间隔生成粒子 |
Speed | 发射位置围绕弧形移动的速度。仅当Mode 为Loop 和Ping-Pong 时可用。使用值字段旁边的小黑色下拉菜单将此属性设置为Constant(常量) 可使值始终保持不变,而设置为Curve(曲线) 可使值随时间变化 |
Length(长度) | 锥体的长度。仅当Emit from: 属性设置为Volume 时,此选项才适用 |
Emit from:(发射于:) | 锥体发射粒子的部分:Base(基础) 或 Volume(音量) |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用 Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
Donut
Donut(甜甜圈)
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Donut(甜甜圈) | 从环面发射粒子。粒子从环面的环向外移动 |
Radius(半径) | 主圆环的半径 |
Donus Radius(甜甜圈半径) | 外圆环的粗度 |
Radius Thickness(半径厚度) | 发射粒子的体积比例。值为 0 表示从形状的外表面发射粒子。值为 1 表示从整个体积发射粒子。介于两者之间的值将使用体积的一定比例 |
Arc(弧度) | 形成发射器形状的整圆的角部 |
Mode | 定义 Unity 如何在形状的弧形周围生成粒子 |
Random(随机) | 在弧形周围随机生成粒子 |
Loop(循环) | 在形状的弧形周围依序生成粒子,并在每个周期结束时循环回到起点 |
Ping-Pong(乒乓) | 与Loop 基本相同,不同之处在于每个连续循环的发生方向与上一个循环相反 |
Burst Spread(突发扩张) | 在形状周围均匀分布粒子生成位置。此模式可提供均匀的粒子扩散,不同于默认的随机化行为,默认情况下的粒子可能不均匀地聚集在一起。最适合与爆发发射一起使用 |
Spread | 弧形周围可产生粒子的离散间隔。例如,值为 0 表示允许在弧形周围的任何位置生成粒子,值为 0.1 表示仅在形状周围以 10% 的间隔生成粒子 |
Speed | 发射位置围绕弧形移动的速度。仅当Mode 为Loop 和Ping-Pong 时可用。使用值字段旁边的小黑色下拉菜单将此属性设置为Constant(常量) 可使值始终保持不变,而设置为Curve(曲线) 可使值随时间变化 |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用 Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
Box
Box(盒)
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Box(盒) | 从盒体形状的边、表面或主体发射粒子。粒子在发射器对象的前向 (Z) 方向上移动 |
Emit from:(发射于:) | 选择盒体发射粒子的部分。Volume(音量) ,Shell(壳) 和Edge(边缘) |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用 Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
Mesh类
Mesh(网格)、MeshRenderer(网格渲染器)、SkinnedMeshRenderer(蒙皮网格渲染器)
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Mesh(网格) | 从检查器 中提供的任意网格形状发射粒子 |
MeshRenderer(网格渲染器) | 从引用的游戏对象网格渲染器 (Mesh Renderer) 发射粒子 |
SkinnedMeshRenderer(蒙皮网格渲染器) | 从引用的游戏对象带蒙皮的网格渲染器 (Skinned Mesh Renderer) 发射粒子 |
Type(类型) | 指定从何处发射粒子 |
Vertex(顶点) | 从顶点发射粒子 |
Edge(边缘) | 从边发射粒子 |
Triangle(三角形) | 从三角形发射粒子 |
Mode | 如何为每个新粒子选择网格上的位置 |
Random(随机) | 对于要选择随机位置的粒子 |
Loop(循环) | 对于要从网格中下一个顶点发射的每个新粒子 |
Ping-Pong(乒乓) | 类似于 Loop 模式,但会在每个循环后沿网格顶点交替方向 |
Mesh(网格) | 提供发射器形状的网格 |
Single Material(单一材料) | 指定是否从特定子网格(由材质索引号标识)发射粒子。如果启用此属性,则会显示一个数字字段,您可以使用该字段指定材质索引号 |
Use Mesh Colors(使用网格颜色) | 使用网格顶点颜色调整粒子颜色,或者,如果顶点颜色不存在,则使用材质中的着色器颜色属性Color 或TintColor |
Normal Offset(法线偏移) | 在距离网格表面多远处发射粒子(在表面法线的方向上) |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用 Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
注意:网格必须设置为read/write enabled
才能在粒子系统上工作。如果在Editor
中分配网格,Unity 会为您进行此处理。但如果要在运行时分配不同的网格,则需要选中网格Import Settings
中的Read/Write Enabled
设置
Mode
属性允许粒子系统以可预测的顺序在网格表面上发射粒子。从顶点
发射时,此属性允许从网格顶点数组中的下一个顶点发射每个新粒子。从边缘
发射时,粒子系统可以沿着网格的三角形/线条的边缘平滑地发射粒子
Sprite类
Sprite、Sprite Renderer
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Sprite | 从检查器 中提供的Sprite 形状发射粒子 |
Sprite Renderer | 从引用的游戏对象Sprite Renderer 发射粒子 |
Type(类型) | 指定从何处发射粒子 |
Vertex(顶点) | 从顶点发射粒子 |
Edge(边缘) | 从边发射粒子 |
Triangle(三角形) | 从三角形发射粒子 |
Sprite | 用于定义粒子发射器形状的Sprite |
Normal Offset(法线偏移) | 在距离Sprite 表面多远处发射粒子(在表面法线的方向上) |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用 Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
Circle
Circle(圆形)
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Circle(圆形) | 从圆形的中心或边缘均匀发射粒子。粒子仅在圆形的平面内移动 |
Radius(半径) | 形状的圆形半径 |
Radius Thickness(半径厚度) | 发射粒子的体积比例。值为 0 表示从形状的外表面发射粒子。值为 1 表示从整个体积发射粒子。介于两者之间的值将使用体积的一定比例 |
Arc(弧度) | 形成发射器形状的整圆的角部 |
Mode | 定义 Unity 如何在形状的弧形周围生成粒子 |
Random(随机) | 在弧形周围随机生成粒子 |
Loop(循环) | 在形状的弧形周围依序生成粒子,并在每个周期结束时循环回到起点 |
Ping-Pong(乒乓) | 与Loop 基本相同,不同之处在于每个连续循环的发生方向与上一个循环相反 |
Burst Spread(突发扩张) | 在形状周围均匀分布粒子生成位置。此模式可提供均匀的粒子扩散,不同于默认的随机化行为,默认情况下的粒子可能不均匀地聚集在一起。最适合与爆发发射一起使用 |
Spread | 弧形周围可产生粒子的离散间隔。例如,值为 0 表示允许在弧形周围的任何位置生成粒子,值为 0.1 表示仅在形状周围以 10% 的间隔生成粒子 |
Speed | 发射位置围绕弧形移动的速度。仅当Mode 为Loop 和Ping-Pong 时可用。使用值字段旁边的小黑色下拉菜单将此属性设置为Constant(常量) 可使值始终保持不变,而设置为Curve(曲线) 可使值随时间变化 |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用 Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
Edge
Edge(边缘)
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Edge(边缘) | 从线段发射粒子。粒子在发射器对象的向上 (Y) 方向上移动 |
Radius | 定义边的长度 |
Mode | 定义 Unity 如何沿着形状的半径生成粒子 |
Random(随机) | 沿着半径随机生成粒子 |
Loop(循环) | 沿着形状的半径依序生成粒子,并在每个周期结束时循环回到起点 |
Ping-Pong(乒乓) | 与Loop 基本相同,不同之处在于每个连续循环的发生方向与上一个循环相反 |
Burst Spread(突发扩张) | 沿着半径均匀分布粒子生成位置。此模式可提供均匀的粒子扩散,不同于默认的随机化行为,默认情况下的粒子可能不均匀地聚集在一起。最适合与爆发发射一起使用 |
Spread | 沿着半径可产生粒子的离散间隔。例如,值为 0 表示允许沿着半径的任何位置生成粒子,值为 0.1 表示仅沿着半径以 10% 的间隔生成粒子 |
Speed | 发射位置沿着半径移动的速度。仅当Mode 为Loop 和Ping-Pong 时可用。使用值字段旁边的小黑色下拉菜单将此属性设置为Constant(常量) 可使值始终保持不变,而设置为Curve(曲线) 可使值随时间变化 |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用 Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
Rectangle
Rectangle(矩形)
属性 | 功能 |
Shape(形状) | 发射体积的形状 |
Rectangle(矩形) | 从矩形发射粒子。粒子从矩形向上移动 |
Texture(纹理) | 用于为粒子着色和丢弃粒子的纹理 |
Position(位置) | 将一个偏移应用于生成粒子的发射器形状 |
Rotation(旋转) | 旋转生成粒子的发射器形状 |
Scale(缩放) | 更改生成粒子的发射器形状的大小 |
Align to Direction(方向对齐) | 根据粒子的初始行进方向定向粒子。如果想要模拟大块的汽车油漆在碰撞过程中飞出车身,此设置将非常有用。如果对该方向不太满意,也可通过在主模块中应用 Start Rotation 值来覆盖该设置 |
Randomize Direction(随机化方向) | 将粒子方向朝随机方向混合。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向完全随机 |
Spherize Direction(球面化方向) | 将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同) |
Randomize Position(随机化位置) | 以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性 |
<!-- tabs:end -->
下方四个图标,用于可视化编辑场景
中的形状,形状的选择会影响可发射粒子的区域,粒子的初始方向甚至粒子的初始速度
图标名称 | 功能 |
形状小工具编辑模式 | 可视化编辑形状的大小 |
形状变换位置编辑模式 | 可视化移动形状的位置 |
形状变换旋转编辑模式 | 可视化旋转形状的角度 |
形状变换旋缩放编辑模式 | 可视化缩放形状的大小 |
Velocity over Lifetime(生命周期内速度)
控制粒子在其生命周期内的速度
属性 | 功能 |
Linear(线性) | 粒子在 X、Y 和 Z 轴上的线性速度 |
Space(空间) | 指定Linear X, Y, Z 轴是参照本地空间还是世界空间 |
Orbital(轨道) | 粒子围绕 X、Y 和 Z 轴的轨道速度 |
Offset(偏移) | 轨道中心的位置,适用于轨道运行粒子 |
Radial(射线) | 粒子远离/朝向中心位置的径向速度 |
Speed Modifier(速度修改器) | 在当前行进方向上或周围向粒子的速度应用一个乘数 |
示例
要创建在特定方向上漂移的粒子,请使用 Linear X、Y 和 Z 曲线。
要创建围绕中心位置旋转的粒子效果,请使用Orbital
速度值。此外,可使用Radial
速度值推动粒子朝向或远离中心位置。您可以使用Offset
值为每个粒子定义自定义的旋转中心
还可以使用此模块调整粒子系统中的粒子速度,而不影响粒子的方向,方法是将所有上述值保留为零,仅修改Speed Modifier
值
Limit Velocity Over Lifetime(生命周期内速度限制)
控制粒子的速度在其生命周期内如何降低
属性 | 功能 |
Separate Axes(分离轴) | 将轴拆分为单独的 X、Y 和 Z 分量 |
Speed(速度) | 设置粒子的速度限制 |
Space(空间) | 选择速度限制是适用局部空间还是世界空间。仅当启用了Separate Axes 时,此选项才可用 |
Dampen(抑制) | 当粒子速度超过速度限制时,粒子速度降低的比例 |
Drag(阻力) | 对粒子速度施加线性阻力 |
Multiply by Size(乘以大小) | 启用此属性后,较大的粒子会更大程度上受到阻力系数的影响 |
Multiply by Velocity(乘以速度) | 启用此属性后,较快的粒子会更大程度上受到阻力系数的影响 |
示例
该模块非常适合用于模拟会减慢粒子速度的空气阻力,特别是在使用下降曲线随时间推移而降低速度限制的情况下。例如,爆炸或烟花最初以极快的速度爆发,但是发射的粒子在穿过空气的过程中会迅速减速
Drag
选项通过提供基于粒子大小和速度施加不同阻力的选项,提供在物理上更加精确的空气阻力模拟
Inherit Velocity(继承速度)
此模块控制粒子的速度如何随时间推移而受到其父对象移动的影响
属性 | 功能 |
Mode(模式) | 指定如何将发射器速度应用于粒子 |
Initial(初始) | 每个粒子出生时将施加一次发射器的速度。粒子出生后对发射器速度的任何改变都不会影响该粒子 |
Current(当前) | 发射器的当前速度将应用于每一帧上的所有粒子。例如,如果发射器减速,所有粒子也将减速 |
Multiplier(乘数) | 粒子应该继承的发射器速度的比例 |
仅当Simulation Space
在主模块
中设置为World
时,此模块才对粒子有影响
示例
这种效果对于从移动对象发射粒子非常有用,例如汽车产生的尘云、火箭产生的烟雾、蒸汽火车烟囱产生的蒸汽,或者粒子最初应以所在对象的速度百分比移动的任何情况
此外也可以使用曲线来影响随时间变化的效果。例如,可对新创建的粒子施加强烈的吸力,使吸力随时间推移而减少。这对于蒸汽火车烟雾可能有用,因为蒸汽火车烟雾会随着时间的推移而缓慢漂移并在发出后停止跟随火车
Force Over Lifetime(生命周期内受力)
通过此模块中指定的力(例如风或吸力)可对粒子加速
属性 | 功能 |
X, Y, Z | 在 X、Y 和 Z 轴上施加到每个粒子的力 |
Space(空间) | 选择是在局部空间还是在世界空间中施力 |
Randomize(随机化) | 使用Two Constants(两常数间随机) 或Two Curves(两曲线间随机) 模式时,此属性会导致在每个帧上在定义的范围内选择新的作用力方向。因此会产生更动荡、更不稳定的运动 |
示例
流体在移动时经常受到力的影响。例如,烟雾从火中升起时因周围热空气的拉升作用而略微加速。使用曲线在粒子生命周期内进行力的控制,可实现微妙的效果。根据前面的例子,烟雾最初会向上加速,但随着上升的空气逐渐冷却,力会减弱。从火焰冒出的浓烟可能最初会加速,然后随着烟雾的蔓延而减速,如果持续很长时间,甚至可能开始落到地上
Color Over Lifetime(生命周期内颜色)
此模块指定粒子的颜色和透明度在其生命周期中如何变化
只有一个属性Color
,表示粒子在其生命周期内的颜色变化
示例
许多类型的天然和超现实粒子的颜色随时间而变化,因此该属性有许多用途。例如,白色强火花在通过空气时会冷却,魔法可能会突然变成彩虹色。但同样重要的还有Alpha(透明度)
的变化。粒子在达到其生命周期终点时燃尽、褪色或消散是很常见的现象(例如,强火花、烟花和烟雾粒子),通过简单的梯度渐变即可产生这种效果
Color By Speed(速度颜色)
在此模块中可设置粒子的颜色根据粒子速度(每秒的距离单位)变化
属性 | 功能 |
Color | 在速度范围内定义的粒子的颜色渐变 |
Speed Range | 颜色渐变映射到的速度范围的下限和上限(超出范围的速度将映射到渐变的端点) |
示例
燃烧或发光的粒子(如火花)在空气中快速移动时会更明亮地燃烧(例如,当火花接触到更多氧气时),但随着它们减速时会略微变暗。要模拟这一点,可使用Color By Speed
模块,使渐变在速度范围的上限为白色,而在下限为红色(在火花示例中,较快的粒子将显示为白色,而较慢的粒子为红色)
Size over Lifetime(生命周期内大小)
许多效果涉及根据曲线改变粒子大小,这些设置可在此模块中进行
属性 | 功能 |
Separate Axes(分离轴) | 在每个轴上独立控制粒子大小 |
Size(大小) | 通过一条曲线定义粒子的大小在其生命周期内如何变化 |
示例
一些粒子通常会在远离发射点时发生大小变化,比如表示气体、火焰或烟雾的粒子。例如,随着时间的推移,烟雾往往会消散并占据更大的体积。为实现此目的,可将烟雾粒子的曲线设置为向上坡道曲线,随着粒子的存活时间而增加。此外还可使用Color Over Lifetime
模块在烟雾蔓延时淡化烟雾,从而进一步增强此效果。
对于燃料燃烧产生的火球,火焰粒子在发射后会趋于膨胀,但后期随着燃料用完和火焰消散而逐渐消失和收缩。在这种情况下,曲线会有一个先上升再下降到较小大小的“驼峰”
Size by Speed(速度决定大小)
在此模块中可创建能够根据速度(每秒的距离单位)改变大小的粒子
属性 | 功能 |
Separate Axes(分离轴) | 在每个轴上独立控制粒子大小 |
Size(大小) | 通过曲线定义粒子在速度范围内的大小 |
Speed Range(速度范围) | 大小曲线映射到的速度范围的下限和上限(超出范围的速度将映射到曲线的端点) |
此模块不应与Limit Velocity Over Lifetime
模块一起使用,除非您希望粒子在减速时改变其大小
示例
某些情况下需要能够根据速度改变大小的粒子。例如,发生爆炸时,您可能希望小碎片的加速度高于更大的碎片。使用Size By Speed
并结合简单的斜坡曲线(此曲线可随粒子大小减小使粒子速度按比例增加),即可实现这样的效果
Speed Range
指定 X(宽度)、Y(高度)和 Z(深度)形状适用的值范围。仅当大小处于其中一种曲线模式时才应用Speed Range
。快速的粒子将使用曲线右端的值缩放,而较慢的粒子将使用曲线左侧的值。例如,如果指定 10 到 100 之间的 Speed Range:
- 低于 10 的速度将设置粒子大小与曲线的最左边相对应
- 高于 100 的速度将设置粒子大小与曲线的最右边相对应
- 10 到 100 之间的速度会将粒子大小设置为由曲线上与速度对应的点确定。在此示例中,速度为 55 将根据曲线的中点设置粒子大小
Rotation Over Lifetime(生命周期内旋转)
在模块中可配置粒子在移动时旋转
属性 | 功能 |
Separate Axes(分离轴) | 允许根据每个轴指定旋转。启用此选项后,即可为 X、Y 和 Z 轴中的每个轴设置旋转 |
Angular Velocity(角速率) | 旋转速度(以度/秒为单位) |
右方下拉菜单可选择常量或曲线,两常数间随机或两曲线间随机
属性 | 功能 |
Constant(常量) | 粒子旋转的速度,以度/秒为单位 |
Curve(曲线) | 角速度可设定为在粒子的生命周期内变化。检查器 底部会出现一个曲线编辑器,可用于控制粒子在整个生命周期内的速度变化情况。如果勾选了 Separate Axes 复选框,则可为每个 X、Y 和 Z 轴赋予曲线速度值 |
Random Between Two Constants(两常数间随机) | 角速度属性具有两个角度,允许在它们之间旋转 |
Random Between Two Curves(两曲线间随机) | 角速度可设定为在粒子的生命周期(由曲线指定)内变化。在此模式下,两条曲线均为可编辑状态,每个粒子将在您定义的这两条曲线的范围之间选择一条随机曲线 |
示例
当粒子表示小型实体对象(例如爆炸产生的碎片)时,此设置很有用。分配随机的旋转值将使效果比粒子在飞行时保持直立更加真实。随机旋转也有助于打破粒子形状相似的规律性(重复多次的相同纹理可能会非常明显)
Rotation By Speed(按速度旋转)
在此模块中可设置粒子的旋转根据粒子速度(每秒的距离单位)变化
属性 | 功能 |
Separate Axes(分离轴) | 为每个旋转轴独立控制旋转 |
Angular Velocity(角速度) | 旋转速度(以度/秒为单位) |
Speed Range(速度范围) | 大小曲线映射到的速度范围的下限和上限(超出范围的速度将映射到曲线的端点) |
示例
当粒子表示在地面上移动的固体对象(例如滑坡的岩石)时,可使用此属性。可根据速度按比例设置粒子的旋转,使粒子在表面上滚动的效果具有令人信服
仅当速度处于其中一种曲线模式时才应用Speed Range
。快速的粒子将使用曲线右端的值旋转,而较慢的粒子将使用曲线左侧的值
External Forces(外力)
此属性可修改风区
和粒子系统力场(Particle System Force Field)
对系统发射的粒子的影响
属性 | 功能 |
Multiplier(乘数) | 应用于风区外力的比例值 |
Influence Filter(影响过滤器) | 选择是基于图层遮罩 (Layer Mask) 或通过显式列表 (List) 包含力场亦或者两者皆有 |
Influence Mask(影响遮罩) | 使用层遮罩来确定哪些力场影响此粒子系统。当Influence Filter 设置为包含Layer Mask 时,将显示此属性。 <br />此属性在默认情况下设置为Everything ,但您可以单独启用或禁用以下选项:<br /> -Nothing(自动取消勾选所有其他选项,将它们关闭)<br /> - Everything(自动勾选所有其他选项,将它们打开)<br /> - Default<br /> - TransparentFX<br /> - Ignore Raycast (射线投射器)<br />- Water <br />- UI |
List(列表) | 定义可影响此粒子系统的力场的显式列表。当Influence Filter 设置包含List 时,将显示此属性 |
注:要通过此功能获得最佳效果,请使用粒子系统力场(Particle System Force Field)
组件创建单独的游戏对象
地形
可添加风区
来影响树在景观中的运动,启用此部分的功能允许风区吹动系统发射的粒子。通过Multiplier
值可调整风对粒子的影响,因为风对粒子的吹动作用通常比树枝更强烈
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(平面) | 用于定义碰撞平面的变换的可扩展列表 |
Visualization(可视化) | 选择要将场景 视图中的碰撞平面辅助图标显示为线框网格还是实体平面 |
Scale Plane(缩放平面) | 用于可视化的平面大小 |
Dampen(抑制) | 粒子碰撞后损失的速度比例 |
Bounce(反弹) | 粒子碰撞后从表面反弹的速度比例 |
Lifetime Loss(生存期损失) | 粒子碰撞后损失的总生命周期比例 |
Min Kill Speed(最小消亡速度) | 碰撞后运动速度低于此速度的粒子将从系统中予以移除 |
Max Kill Speed(最大消失速度) | 碰撞后运动速度高于此速度的粒子将从系统中予以移除 |
Radius Scale(半径缩放) | 允许调整粒子碰撞球体的半径,使其更贴近粒子图形的可视边缘 |
Send Collision Messages(发送碰撞消息) | 如果启用此属性,则可从脚本中通过OnParticleCollision 函数检测粒子碰撞 |
Visualize Bounds(可视化边界) | 在场景 视图中将每个粒子的碰撞边界渲染为线框形状 |
World(世界)
与世界中任何物品碰撞
属性 | 功能 |
类型 | 选择World 模式 |
Collision Mode(模式) | 3D 或 2D |
Dampen(抑制) | 粒子碰撞后损失的速度比例 |
Bounce(反弹) | 粒子碰撞后从表面反弹的速度比例 |
Lifetime Loss(生存期损失) | 粒子碰撞后损失的总生命周期比例 |
Min Kill Speed(最小消亡速度) | 碰撞后运动速度低于此速度的粒子将从系统中予以移除 |
Max Kill Speed(最大消失速度) | 碰撞后运动速度高于此速度的粒子将从系统中予以移除 |
Radius Scale(半径缩放) | 调整粒子碰撞球体的半径,使其更贴近粒子图形的可视边缘 |
Collision Quality(碰撞质量) | 使用下拉选单来设置粒子碰撞的质量。此设置会影响有多少粒子可以穿过碰撞体。在较低的质量水平下,粒子有时会穿过碰撞体,但需要的计算资源较少 |
High(高) | 碰撞始终使用物理系统来检测碰撞结果。此设置是最耗费资源但也是最准确的选项 |
Medium (Static Colliders)(中等(静态碰撞体)) | 碰撞使用一组体素来缓存先前的碰撞,从而在以后的帧中更快地重用。 |
Low (Static Colliders)(低(静态碰撞体)) | 碰撞使用一组体素来缓存先前的碰撞,从而在以后的帧中更快地重用。Medium 和Low 之间的唯一区别是粒子系统在每帧查询物理系统的次数。Medium 每帧的查询次数多于Low 。请注意,此设置仅适用于从不移动的静态碰撞体 |
Collides With(碰撞对象) | 粒子只会与所选层上的对象发生碰撞 |
Max Collision Shapes(最大碰撞形状) | 粒子碰撞可包括的碰撞形状个数。多余的形状将被忽略,且地形优先 |
Enable Dynamic Colliders(启用动态碰撞器) | 允许粒子也与动态对象碰撞(否则仅使用静态对象)。动态碰撞体是未配置为 Kinematic 的任何碰撞体。 选中此选项可将这些碰撞体类型包含在粒子发生碰撞时响应的对象组内。如果取消选中此选项,粒子仅响应与静态碰撞体的碰撞 |
Voxel Size(体素大小) | 体素 (voxel) 表示三维空间中的常规网格上的值。使用Medium 或Low 质量碰撞时,Unity 会在网格结构中缓存碰撞。此设置控制着网格大小。较小的值可提供更高的准确性,但会占用更多内存,效率也会降低。 <br />注意:仅当Collision Quality 设置为Medium 或Low 时,才能访问此属性 |
Collider Force(碰撞器力度) | 在粒子碰撞后对物理碰撞体施力。这对于用粒子推动碰撞体很有用 |
Multiply by Collision Angle(乘以碰撞角) | 向碰撞体施力时,根据粒子与碰撞体之间的碰撞角度来缩放力的强度。掠射角将比正面碰撞产生更小的力 |
Multiply by Particle Speed(乘以粒子速度) | 向碰撞体施力时,根据粒子的速度来缩放力的强度。快速移动的粒子会比较慢的粒子产生更大的力 |
Multiply by Particle Size(乘以粒子大小) | 向碰撞体施力时,根据粒子的大小来缩放力的强度。较大的粒子会比较小的粒子产生更大的力 |
Send Collision Messages(发送碰撞消息) | 如果选中此复选框,则允许从脚本中通过OnParticleCollision 函数检测粒子碰撞 |
Visualize Bounds(可视化边界) | 在场景 视图中预览每个粒子的碰撞球体 |
示例
当其他对象围绕粒子系统时,通常情况下,粒子与这些对象相互作用才会使效果更有说服力。例如,水或碎片应该被坚固的墙壁阻挡而非直接穿过墙壁。启用Collision
模块后,粒子可与场景中的对象发生碰撞
通过从弹出菜单中选择World
模式,可设置粒子系统来使其粒子与场景中的任何碰撞体碰撞。此外,也可使用Collides With
属性根据碰撞体所在的层来禁用碰撞体。弹出菜单还有一个Planes
模式选项,可用于向场景中添加一组不需要碰撞体的平面。此选项对于简单的地板、墙壁和类似对象非常有用,并且处理器开销低于World
模式
启用Planes
模式后,可通过Planes
属性添加一组变换(通常为空游戏对象)。平面在对象的局部XZ
平面中无限延伸,其中以正Y
轴表示平面的法线矢量。为了协助开发,无论对象本身是否具有任何可见的网格,平面都将在场景中显示为辅助图标。辅助图标可显示为线框网格或实体平面,也可进行缩放。但是,缩放仅适用于可视化;碰撞平面本身在场景中无限延伸
启用碰撞后,粒子的大小有时会成为问题,因为它的图形在与表面接触时可能被裁剪。这种情况可能导致粒子在停止或反弹之前在一定程度上“下沉”到表面中。Radius Scale
属性通过定义粒子的近似圆形半径(以其实际大小的百分比形式)来解决此问题。此大小信息用于防止裁剪并避免下沉效应
当粒子表示实体对象时,Dampen
和Bounce
属性非常有用。例如,砾石在抛出时往往会在坚硬的表面上反弹,但是雪球粒子在碰撞时可能会失去速度。Lifetime Loss
和Min Kill Speed
有助于减少碰撞后残留颗粒的影响。例如,火球在空中飞行时可能会持续几秒钟,但在碰撞后,单独的火焰粒子应该快速消散
如果启用了Send Collision Messages
,还可从脚本中检测粒子碰撞。脚本可附加到带有粒子系统的对象,也可附加到带有碰撞体的对象。通过检测碰撞,可将粒子用作游戏中的活动对象,例如飞弹、魔法和能量块 (power-up)
World Collision Quality(碰撞质量)
World Collision 模块具有 Collision Quality 属性,可将其设置为 High、Medium 或 Low。当 Collision Quality 设置为 Medium (Static Colliders) 或 Low (Static Colliders) 时,碰撞使用一组体素(3D 网格上的值)来缓存先前的碰撞,从而在以后的帧中快速重用。
该缓存由每个体素中的平面组成,其中的平面表示该位置处的碰撞表面。在每个帧上,Unity 都会检查缓存中是否有该粒子位置的平面,如果有,则 Unity 将其用于碰撞检测。否则会查询物理系统。如果返回了碰撞,则会将其添加到缓存中,以便在后续帧上快速进行查询。
这是近似算法,因此可能存在一些缺失的碰撞。可通过减小 Voxel Size 值来帮助解决这个问题;但是,这样做会占用额外的内存,效率也会降低。
Medium 和 Low 之间的唯一区别是允许系统在每帧查询物理系统的次数。Low 每帧的查询次数少于 Medium。一旦超出每帧预算,只能将缓存用于所有其余粒子。这样一来可能导致缺失的碰撞增加,直到更全面填充缓存为止。
Triggers(触发器)
内置粒子系统的Triggers
模块可用于基于粒子与场景中一个或多个碰撞体的相互作用来访问和修改粒子。启用此模块时,粒子系统将在附加的脚本上调用OnParticleTrigger()
回调,因此可以根据粒子相对于场景中碰撞体的位置来访问粒子列表
添加碰撞体
首先,指定粒子可与场景中的哪些碰撞体进行碰撞。为此,请将一个或多个碰撞体分配给Colliders
列表属性。要增加列表中的碰撞体数量,请单击 Colliders 列表下方的 Add (+) 按钮。要从列表中移除某个碰撞体,请选择该碰撞体,然后单击 Remove (-) 按钮。如果尚未将碰撞体分配给列表的索引,则可以使用空条目右侧较小的 Add (+) 按钮来创建和分配新的碰撞体。这将创建一个新的游戏对象作为粒子系统的子项,并将球形碰撞体附加到该游戏对象,然后将碰撞体分配给空条目
添加碰撞体后,可指定当粒子满足传递特定触发事件类型的条件时将执行的操作。事件类型有四种,它们描述了粒子如何与碰撞体相互作用
属性
属性 | 描述 |
Inside(内部) | 粒子在碰撞体的边界内会发生什么 |
Outside(外部) | 粒子在碰撞体的边界外会发生什么 |
Enter(进入) | 粒子进入碰撞体的边界会发生什么 |
Exit(退出) | 粒子退出碰撞体的边界会发生什么 |
Ignore | 忽略粒子。您无法在OnParticleTrigger() 回调函数中访问粒子 |
Kill | 销毁粒子。您无法在OnParticleTrigger() 回调函数中访问粒子 |
Callback | 允许您在OnParticleTrigger() 回调函数中访问粒子 |
Radius Scale(半径缩放) | 粒子的碰撞体边界。允许您更紧密地将粒子的碰撞体边界匹配到粒子的视觉外观。如果粒子为圆形且其纹理具有淡入淡出效果,这将很有用,因为默认粒子碰撞体将在粒子达到视觉效果之前位于触发器内。请注意,当事件实际触发时,此设置不会更改,但是可以延迟或提前达到触发器的视觉效果。 <br />• 输入 1 可以使粒子碰撞体保持同一大小,并使事件在粒子接触碰撞体时发生 <br />• 输入小于 1 的值可以使粒子碰撞体更小,并使触发看起来是在粒子穿透碰撞体之前发生 <br />• 输入大于 1 的值可以使粒子碰撞体更大,并使触发看起来是在粒子穿透碰撞体之后发生 |
Visualize Bounds(可视化边界) | 指示是否在场景 视图中显示每个粒子的碰撞体边界。启用此属性可显示碰撞体边界,而禁用则可隐藏碰撞体边界。 |
Sub Emitters(子发射器)
在此模块中可设置子发射器,即子级粒子系统。这些子发射器是在粒子生命周期的某些阶段在粒子位置处创建的附加粒子发射器
配置一个子发射器列表,并选择它们的触发条件以及它们从父粒子继承的属性
属性 | 描述 |
触发条件 | 触发子发射器的条件 |
Birth(出生) | 跟随父级出生时发射 |
Collision(碰撞) | 父级粒子与对象发生碰撞时 |
Death(死亡) | 父级粒子销毁时 |
Trigger(触发器) | 父级粒子与触发碰撞体相互作用时 |
Manual(用户手册) | 仅在通过脚本进行请求时触发 |
Inherit(继承) | 将属性从父粒子转移到每个新创建的粒子。可转移属性包括颜色、尺寸、旋转角度、生命周期和持续时间。要控制速度的继承方式,请在子发射器系统上配置Inherit Velocity 模块 |
Emit Probability(发射概率) | 配置子发射器事件的触发概率。值为 1 可以保证事件将触发,而更小的值则会降低概率 |
请注意,Collision
、Trigger
、Death
和 Manual
事件只能使用子级粒子的Emission
模块中的爆发发射
示例
许多类型的粒子都会在其生命周期的不同阶段产生一些效果,而这也可使用粒子系统来实现。例如,子弹离开枪管时可能伴随着一缕烟尘,火球可能会在撞击时爆炸。您可以使用子发射器来创建诸如此类的效果。
子发射器是在场景中创建的或来自预制件的普通粒子系统对象。这意味着子发射器还可以有自己的子发射器(这种类型的布置对于像烟花这样的复杂效果很有用)。但是,虽然使用子发射器生成大量粒子非常容易,但这可能非常耗费资源。
Texture Sheet Animation(纹理表格动画)
粒子的图形不必是静止图像。此模块允许您将纹理视为可作为动画帧进行播放的一组单独子图像
使用此模块为特殊的纹理,即有许多图像排列的纹理
Grid(网格)模式属性
属性 | 功能 |
Mode(模式) | 选择Grid(网格) 模式 |
Tiles(瓦片) | 纹理在 X(水平)和 Y(垂直)方向上划分的区块数量 |
Animation(动画) | Animation 模式可设置为Whole Sheet(整张工作表) 或 Single Row (单行)(即Sprite图集的每一行代表一个单独的动画序列) |
Row Mode(行模式) | 粒子系统从纹理帧中选择一行以生成动画。仅当Animation 模式设置为Single Row 时,此属性才可用 |
Custom(自定义) | 将纹理帧的特定行用于动画 |
Random(随机) | 为每个粒子随机选择一行来生成动画 |
Mesh Index(网格索引) | 根据分配给粒子的网格索引(Mesh Index) 选择一行。需要确保使用特定网格的粒子也要使用相同的纹理时,此功能很有用 |
Row(行) | 从精灵图集选择特定行以生成动画。仅当选择Single Row 模式且选择Custom 时,此选项才可用 |
Time Mode(时间模式) | 选择粒子系统如何在动画中对帧进行采样 |
Lifetime(生存期) | 在粒子的生命周期内使用动画曲线对帧进行采样 |
Speed(速度) | 根据粒子的速度对帧进行采样。速度范围指定选择帧的最小和最大速度范围 |
FPS | 根据指定的每秒帧数值对帧进行采样 |
Frame over Time(随时间推移的帧) | 通过一条曲线指定动画帧随着时间的推移如何增加 |
Start Frame(开始帧) | 允许指定粒子动画应从哪个帧开始(对于在每个粒子上随机定相动画非常有用) |
Cycles(周期) | 动画序列在粒子生命周期内重复的次数 |
Affected UV Channels(受影响的UV通道) | 允许具体指定粒子系统影响的 UV 流 |
Sprite模式属性
属性 | 功能 |
Mode(模式) | 选择Sprites 模式 |
Time Mode(时间模式) | 选择粒子系统如何在动画中对帧进行采样 |
Lifetime(生存期) | 在粒子的生命周期内使用动画曲线对帧进行采样 |
Speed(速度) | 根据粒子的速度对帧进行采样。速度范围指定选择帧的最小和最大速度范围 |
FPS | 根据指定的每秒帧数值对帧进行采样 |
Frame over Time(随时间推移的帧) | 通过一条曲线指定动画帧随着时间的推移如何增加 |
Start Frame(开始帧) | 允许指定粒子动画应从哪个帧开始(对于在每个粒子上随机定相动画非常有用) |
Cycles(周期) | 动画序列在粒子生命周期内重复的次数 |
Enabled UV Channels(受影响的UV通道) | 允许具体指定粒子系统影响的 UV 流 |
示例
粒子动画通常比角色动画更简单,细节级别更低。在可单独看到粒子的系统中,动画可用于表现动作或移动。例如,火焰可能会闪烁,成群的昆虫可能振动或颤抖,好像在拍打翅膀。在粒子形成单个连续实体(如云团)的情况下,动画粒子有助于增添能量和运动效果
您可以使用Single Row
模式为粒子创建单独的动画序列,并通过脚本在动画之间切换。这对于创建变体或在碰撞后切换到不同动画非常有用。Random Row
选项非常适合用于打破粒子系统中明显的规律性(例如,一组火焰对象全部一遍又一遍重复完全相同的闪烁动画)。此选项也用于每行的单个帧,从而生成具有随机图形的粒子。此选项可用于打破诸如云之类的对象中的规则性,或者用于从单个系统产生不同类型的碎片或其他对象。例如,一把大口径枪可能会发射出一堆钉子、螺栓、球和其他飞弹,汽车碰撞效果可能会导致发射出弹簧、汽车油漆、螺钉和其他金属部件
Row Mode
属性用于打破粒子系统中明显的规律性(例如,一组游戏对象全部一遍又一遍重复完全相同的闪烁动画)。要生成具有随机图形的粒子,请将此属性用于每行的单个帧。此属性可用于打破诸如云之类的单个系统中的规律性,或者用于产生不同类型的碎片。例如,一把枪可能会发射出一堆钉子、螺栓和其他飞弹,汽车碰撞效果可能会发射出弹簧、汽车油漆、螺钉和其他金属部件
UV 翻转是为效果添加更多视觉多样性而无需创建其他纹理的好方法
从Mode
下拉选单中选择Sprites
选项,可以定义要为每个粒子显示的Sprites列表,而不是使用纹理上的一组常规帧。使用此模式可以利用Sprite的许多功能,例如Sprite Packer
、自定义轴心和每个Sprite帧的不同大小。Sprite Packer
可帮助在不同粒子系统之间共享材质,方法是将纹理整理成图集,从而通过动态批处理 (Dynamic Batching)
提高性能。使用此模式时需要注意一些限制。最重要的一点,附加到粒子系统的所有Sprite必须共享相同的纹理。通过使用Multiple Mode Sprite
或使用Sprite Packer
即可实现此目的。如果为每个Sprite使用自定义轴心点,请注意不能在它们的帧之间进行混合,因为每个帧之间的几何体会有所不同。仅支持简单Sprite,而不支持 9 切片Sprite。另外请注意,网格粒子不支持自定义轴心以及变化的Sprite大小
Lights(光线)
使用此模块可将实时光照添加到一部分粒子
属性 | 功能 |
Light(灯光) | 分配一个光照预制件来描述粒子光照外观 |
Ratio(比例) | 一个介于 0 和 1 之间的值,表示将接受光照的粒子的比例 |
Random Distribution(随机分布) | 选择是随机分配还是定期分配光照。设置为 true 时,每个粒子都有根据 Ratio 值随机接受光照的机会。较高的值可增加粒子接受光照的概率。设置为 false 时,由 Ratio 控制新创建的粒子接受光照的频率(例如,每第 N 个粒子将接受光照) |
Use Particle Color(使用粒子颜色) | 设置为 True 时,光照的最终颜色将通过其附加到的粒子的颜色进行调制。如果设置为 False,则使用光照颜色而不进行任何修改 |
Size Affects Range(大小影响范围) | 启用此属性后,在光照中指定的范围 (Range) 将受到粒子大小的影响 |
Alpha Affects Intensity(Alpha影响强度) | 启用此属性后,光照的强度 (Intensity) 将受到粒子 Alpha 值的影响,即透明度的强度 |
Range Multiplier(范围乘数) | 使用此曲线在粒子的生命周期内将一个自定义乘数应用于光照范围 |
Intensity Multiplier(强度乘数) | 使用此曲线在粒子的生命周期内将一个自定义乘数应用于光照强度 |
Maximum Lights(最大灯光数量) | 使用此设置可避免意外创建大量光照,大量光照可能会使 Editor 无响应或使应用程序运行速度非常慢 |
示例
Lights 模块是一种为粒子效果添加实时光照的快速方法。此模块可用于使系统将光照投射到周围环境,例如可用于火、烟花或闪电。此外,还可通过该模块让光照从所附着的粒子继承各种属性。这样可以使粒子效果本身的发光更加逼真。例如,为了实现此目的,可使光照随其粒子淡出并使它们共享相同的颜色
该模块可以非常快速地创建大量实时光照,但实时光照有很高的性能成本,尤其是在前向渲染模式下。如果光照还要投射阴影,性能成本会更高。为了防止意外调整发射速率并因此导致创建数千个实时光照,应使用 Maximum Lights 属性。创建的光照数量超过目标硬件的管理能力可能会导致速度降低和无响应的问题
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(分割子发射器条带) | 用作子发射器的系统上启用此属性时,从同一父系统粒子生成的粒子将共享一个轨迹带 |
Attach Ribbons to Transform(将条带附加到变换组件) | 将每个条带连接到变换组件的位置 |
Texture Mode(纹理模式) | 控制如何将纹理应用于粒子轨迹 |
Stretch(伸展) | 沿轨迹的整个长度映射纹理一次 |
Tile(平铺) | 每 N 个距离重复纹理。重复率是基于Material 中的Tiling 参数进行控制的 |
DistributePerSegment(分布每段) | 沿轨迹的整个长度映射纹理一次,并假设所有顶点均匀分布 |
RepeatPerSegment(重复每段) | 沿轨迹重复纹理,每个轨迹段重复一次。重复率是基于Material 中的Tiling 参数进行控制的 |
Size affects Width(大小会影响宽度) | 轨迹宽度受粒子大小影响 |
Size affects Lifetime(大小会影响生命周期) | 轨迹生命周期受粒子大小影响 |
Inherit Particle Color(继承粒子颜色) | 轨迹颜色由粒子颜色调制 |
Color over Lifetime(生命周期内颜色) | 通过一条曲线控制整个轨迹在其附着粒子的整个生命周期内的颜色 |
Width over Trail(拖尾宽度) | 通过一条曲线控制轨迹沿其长度的宽度 |
Color over Trail(拖尾颜色) | 通过一条曲线控制轨迹沿其长度的颜色 |
Generate Lighting Data(生成照明数据) | 通过启用此属性(选中复选框),可在构建轨迹几何体时包含法线和切线。这样允许它们使用具有场景光照的材质,例如通过标准着色器,或通过使用自定义着色器 |
Shadow Bias(阴影偏离) | 设置沿着光照方向的阴影移动量以消除阴影瑕疵 |
使用Renderer
模块指定拖尾材质 (Trail Material)
其他
Unity 在每个顶点处从颜色渐变 (Color Gradient) 中采样颜色,并在每个顶点之间进行线性的颜色插值。向线渲染器 (Line Renderer) 添加更多顶点可以更接近详细的颜色渐变
Custom Data(自定义数据)
Custom Data
模块允许您在Editor
中定义要附加到粒子的自定义数据格式。您也可以在脚本中进行此设置。有关如何在脚本中设置自定义数据并将该数据发送到着色器的更多信息,请参阅粒子系统顶点流的相关文档。
数据可以是矢量 (Vector)
的形式,包含最多 4 个MinMaxCurve组件或颜色 (Color)
,此颜色是支持HDR
的MinMaxGradient。使用此数据可在脚本和着色器中驱动自定义逻辑。
可自定义每个曲线/渐变的默认标签,只需单击它们并输入上下文名称即可。将自定义数据传递给着色器时,了解如何在着色器中使用该数据非常有用。例如,曲线可用于自定义的Alpha
测试,或者可使用渐变向粒子添加辅助颜色。通过编辑标签,很容易在UI
中保留每个自定义数据条目的记录。
Renderer(渲染器)
Renderer 模块的设置决定了粒子的图像或网格如何被其他粒子变换、着色和过度绘制。
属性 | 功能 |
Render Mode(渲染模式) | 如何从图形图像(或网格)生成渲染图像 |
Billboard(广告牌) | 粒子始终面向摄像机 |
Stretched Billboard(伸展广告牌) | 粒子面向摄像机,但会应用各种缩放,即以下三种 |
Camera Scale(摄像机缩放) | 根据摄像机运动拉伸粒子。将此值设置为 0 可禁用摄像机运动拉伸 |
Velocity Scale(速度比例) | 根据粒子速度按比例拉伸粒子。将此值设置为 0 可禁用基于速度的拉伸 |
Length Scale(长度比例) | 沿着粒子的速度方向根据粒子当前大小按比例拉伸粒子。将此值设置为 0 会使粒子消失,相当于 0 长度 |
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(速度) | 使网格模型化粒子模型正面方向和速度方向一样 |
Flip(翻转) | 在指定轴上镜像一定比例的粒子。较高的值会翻转更多的粒子 |
Enable GPU Instancing(启用网格GPU实例化) | 控制是否要使用 GPU 实例化来渲染粒子系统。需要使用网格渲染模式并使用兼容的着色器 |
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(投射阴影) | 如果启用此属性,阴影投射光源照在粒子系统上时将产生阴影 |
Off | 禁用阴影 |
On | 启用阴影 |
Two-Sided | 允许从网格的任一侧投射阴影(这意味着不考虑背面剔除) |
Shadows Only | 使阴影可见,但网格本身不可见 |
Receive Shadows(接受阴影) | 决定阴影是否可投射到粒子上。只有不透明材质才能接受阴影 |
Shadow Bias(阴影偏离) | 沿着光照方向移动阴影以消除因使用公告牌来模拟体积而导致的阴影瑕疵 |
Motion Vectors(运动矢量) | 设置是否使用运动矢量来跟踪此粒子系统的变换组件从一帧到下一帧的每像素屏幕空间运动 |
Camera Motion Only(仅摄像机移动) | 仅使用摄像机移动来跟踪运动。 |
Per Object Motion(每对象移动) | 使用特定通道来跟踪此渲染器的运动。 |
Force No Motion(强制无动作) | 不跟踪运动。 |
Sorting Layer ID | 渲染器排序图层的名称 |
Order in Layer(图层顺序) | 此渲染器在排序图层中的顺序 |
Light Probes(光照探测器) | 基于探针的光照插值模式 |
Reflection Probes(反射探测器) | 如果启用此属性,并且场景中存在反射探针,则会为此游戏对象拾取反射纹理,并将此纹理设置为内置的着色器 uniform 变量 |
Anchor Override(锚点覆盖) | 使用光照探针 或反射探针 系统时用变换来确定插值位置 |
网格必须设置为read/write enabled
才能在粒子系统上工作。如果在Editor
中分配网格,Unity 会为您进行此处理,但如果您想在运行时分配不同的网格,则需要自己处理此设置。
其他
使用 2D 公告牌图形时,不同的选项可用于不同的效果:
Billboard
模式适合用于表示从任何方向看起来大致相同的体积的粒子(例如云)Horizontal Billboard
模式可在粒子覆盖地面时(例如目标指示器和魔法效果)或者是平行于地面飞行或浮动的扁平对象时(例如飞镖)使用Vertical Billboard
模式使每个粒子保持直立并垂直于 XZ 平面,但允许粒子围绕其 y 轴旋转。使用正交摄像机并希望粒子大小保持一致时,此模式可能会有用Stretched Billboard
模式通过与传统动画器使用的“拉伸或挤压”技术类似的方式突出粒子的表观速度。请注意,在Stretched Billboard
模式下,粒子将看齐面向摄像机,并且还向粒子速度看齐。无论Velocity Scale
值如何,都会发生此看齐;即使Velocity Scale
设置为 0,此模式下的粒子仍然向速度看齐
Normal Direction
可用于在扁平矩形公告牌上创建球形阴影。如果使用的材质将光照应用于粒子,此设置有助于创建 3D 粒子的视觉效果。此设置仅与Billboard
渲染模式结合使用
No Comments