粒子系统控制面板默认有4个模块:Particle System(主模块),Emission(发射模块),
Shape(形状模块),Renderer(渲染器模块)
1.Particle System模块包含了影响整个粒子系统的全局设置,主要用来初始化粒子系统,例如设置例子初始化时间、循环方式、初始速度、颜色、大小等基本参数
Duration | 系统运行时长 |
Looping | 循环播放 |
Prewarm | 启用后,系统会初始化至已经完成一个完整周期时的状态 |
Start Delay | 系统运行前的延迟时间 |
Start Lifetime | 粒子的存活时间 |
Start Speed | 粒子的初始速度 |
3D Start Size | 启用后可以单独控制每个轴的大小(对粒子进行单独方向上的拉伸) |
Start Size | 粒子初始大小 |
3D Start Rotation | 启用后可以单独控制每个轴的旋转 |
Start Rotation | 粒子初始旋转角度 |
Flip Rotation | 使一些粒子以相反的方向旋转 |
Start Color | 粒子的初始颜色 |
Gravity Modifier | 设置重力值(值为零会关闭重力) |
Simulation Space | 控制粒子是在父对象的局部空间移动(会与父物体一起移动),或是在世界空间中,还是相对于自定义对象(使用自己选择的自定义对象移动) |
Simulation Speed | 调整整个粒子系统产生的速度(类似动画快放速度) |
Delta Time | 在Scaled和Unscaled之间选择,其中Scaled使用Time Manager中的Time Scale值,而Unscaled会忽略它 |
Scaling Mode | 选择使用变换比例,可设置为Hierarchy、Local或Shape模式。Local模式仅应用粒子系统变换比例,忽略任何父对象。Shape模式将按一定比例应用于粒子的其实位置,但不影响其大小 |
Play On Awake | 启用后,粒子系统会在创建对象时自动启用(自动播放粒子系统) |
Emitter Velocity Mode | 选择粒子系统如何计算Inherit Velocity和Emission模块使用的速度。系统可以使用Rigidbody组件或通过跟踪Transform组件的移动来计算速度 |
Max Particles | 系统中一次性产生的最大粒子数 |
Auto Random Seed | 启用后,每次播放粒子系统显示形态都不同。否则每次播放时系统都完全相同 |
Stop Action | 当属于系统的所有粒子都已完成时,可以时系统执行动作。对于循环系统,只有在通过脚本停止系统时才会发生这种情况 Disable---禁用该物体 Destory---销毁该物体 Callback---附加在该物体的任何脚本都会执行OnParticleSystemStopped函数 |
Culling Mode | 裁剪模式,粒子在屏幕外面时的处理,Automatic(循环粒子-停止更新,非循环-不停止更新)、Pause And Catch-up(停止更新,当返回屏幕时,补齐这段时间的更新,这回产生性能问题)、Pause(停止)、Always Simulate(在不在屏幕外都一直更新) |
Ring Buffer Mode | 粒子循环利用方式,Disabled(不循环利用)、Pause Until Replaced(当数量达到最大上限时,老的粒子停止,去用于产生新的)、Loop Until Replaced(当粒子生命结束时,加入新利用循环) |
2.Emission模块中的属性会影响粒子系统发射的速率和时间
Rate over Time | 单位时间发出的粒子数 |
Rate over Distance | 单位时间发射粒子的移动状态 |
Bursts | 该设置允许在指定时间发射粒子,效果类似粒子的爆发状态 Time---设置发射脉冲串的时间(以粒子系统开始播 放后的秒数) Count---设置发射的粒子数的约数 Cycles---设置播放爆发次数的值 Interval---设置触发每个脉冲周期之间的时间间隔 Probability---设置每个脉冲触发的可能性(1为100%触发) |
3.Shape模块定义了发射粒子区域(几何体或平面)的形状,以及起始速度的方向,其余模块属性也会根据选择的Shape而变化。
Sphere 球体-向各个方向发射粒子
Hemisphere 半球体-向半球体内各个方向发射粒子
Cone 锥体-向锥体内各个方向发射粒子
…….等
具体参数以Cone Shape锥体为例
Angle | 锥体在其顶点处的角度,角度为0时呈圆柱体发散粒子,角度为90时呈圆盘形状发散粒子(此时粒子在平面内发射) |
Radius | 该形状的圆形部分的半径 |
Radius Thickness | 发射粒子的区域体积比例。值为0时,从形状的外表面发射粒子;值为1时从整个锥体区域中发射粒子,介于两者之间的值将按照一定比例划分粒子数量 |
Arc | 形成发射器形状的整圆部分的角度偏移,将影响粒子发射角度 |
Length | 锥体的长度,仅当Emit from属性设置为Volume时适用 |
Emit from | 锥体部分从以下部位发射粒子:基部或体积 |
Texture | 用于着色和丢弃粒子的纹理 |
Clip Channel | 纹理中用于丢弃粒子的通道 |
Clip Threshold | 将例子映射到纹理上的位置时,丢弃任何像素颜色低于此阈值的像素 |
Color affects Particles | 通过纹理颜色乘以粒子颜色 |
Alpha affects Particles | 通过纹理Alpha乘以粒子Alpha |
Bilinear Filtering | 在读取纹理时,无论纹理尺寸如何,组合4个相邻样本以获得更平滑的粒子颜色变化 |
Position | 将偏移应用于生成粒子的发射器形状 |
Rotation | 旋转用于产生粒子的发射器形状 |
Scale | 更改用于生成粒子的发射器大小 |
Align to Direction | 根据粒子的初始行进方向定向粒子。如果客户想要模拟汽车油漆块在碰撞过程中飞出汽车车身,这将非常有用。如果方向不满意,用户还可以通过在主模块中应用“开始旋转”值来覆盖它 |
Randomize Direction | 将粒子方向朝随机方向发射。设置为0时,此设置无效,设置为1时,粒子方向完全随机 |
Spherize Direction | 将粒子方向朝球面方向发射,从它们的变换中心向外传播。设置为0时,此设置无效,设置为1时,粒子方向与当Shape设置为Sphere时的发射方向相同 |
Randomize Position | 将粒子位置移动随机量,直至达到指定值。设置为0时,此设置无效。任何其他值都会对粒子的产生位置应用一些随机性 |
4.Renderer模块将确定粒子渲染的图像或网格,以及粒子被其他粒子替换、着色和穿透的属性设置。
Render Mode | 从图形图像(或网格)生成渲染图像 Billboard---粒子始终面向摄像机 Stretched Billboard---粒子面向摄像机,但应用 了各种缩放 Horizontal Billboard---粒子平面平行于X、Z轴组 成的平面 Vertical Billboard---粒子在世界坐标Y轴上直 立,并面向摄像机 Mesh---粒子是通过3D网格而不是纹理进行渲染None隐藏默认渲染 |
Normal Direction | 用于粒子图形的照明法线的偏差。值为1指向摄像机的法线,值为0指向屏幕中心(仅限Billboard模式) |
Material | 用于渲染粒子的材质 |
Sort Mode | 绘制粒子(因此重叠)的顺序。可能的值是距离(来自摄像机),前面最旧,前面最新,深度。系统中的每个粒子将根据此设置进行排序 |
Sorting Fudge | 粒子系统排序的偏差。较低的值会增加粒子系统在其他透明GameObject(包括其他粒子系统)上绘制的相对几率。此设置仅影响整个系统在场景中的显示位置-它不对系统中的单个粒子执行排序 |
Min Particle Size | 最小粒径(无论其他设置如何),表示为视口大小的一小部分。此设置仅在“渲染模式”为“广告牌”时应用 |
Max Particle Size | 最大粒径(无论其他设置如何),表示为视口大小的一小部分。此设置仅在“渲染模式”为“广告牌”时应用 |
Render Alignment | 使用下拉列表选择粒子广告牌面向的方向 |
Flip | 在指定的轴上镜像一定比例的粒子。值越高,翻转的粒子越多 |
Allow Roll | 控制面向摄影机的粒子是否可以围绕摄影机的Z轴旋转。禁用此功能对VR特别有用应用,其中HMD(头戴式显示器)滚动可能导致粒子系统不希望的粒子旋转 |
Pivot | 修改用作旋转粒子中心的轴心点 |
Visualize Pivot | 在Scene视图中预览粒子轴心 |
Masking | 设定粒子系统渲染的粒子与精灵遮罩交互时的行为方式 No Masking---粒子系统不会与场景中的任何精灵遮罩交互 Visible Inside Mask---粒子在精灵遮罩覆盖它们的位置可见,但不在其外部 Visible Outside Mask---粒子在精灵遮罩外可见, 但在精灵遮罩内不可见。精灵遮罩隐藏其覆盖的粒子部分 |
Apply Active Color Space | 在“线性颜色空间”(Linear Color Space)中渲染时,系统在将粒 子颜色上载到GPU之前,先从Gamma空间转换粒子颜色 |
Custom Vertex Streams | 配置材质的“顶点着色器”中可用的粒子属性 |
Cast Shadows | 如果启用,粒子系统会在阴影投射光 照射到它上时创建阴影 On---启用阴影 Off---禁用阴影 Two Sided----允许从网格的任一侧投射阴影 Shadows Only---使阴影可见,但“网格”本身不可见 |
Receive Shadows | 决定阴影是否可以投射到粒子上。只用不透明材质才能接受阴影 |
Shadows Bias | 沿着灯光的方向移动阴影。这将删除由于使用广告牌近似体积而导致的阴影伪影 |
Motion Vectors | 设置是否使用运动矢量来跟踪此粒子系统的“变换”组件从一帧到下一帧的每像素屏幕空间运动 Camera Motion Only---仅使用相机移动来跟踪运动 Per Object Motion---使用特定过程来跟踪此渲染器的运动 Force No Motion---不跟踪运动 |
Sorting Layer ID | 渲染器的排序图层的名称 |
Oeder in Layer | 此渲染器在排序图层中的顺序 |
Light Probes | 基于探头的光照插值模式 |
Reflection Probes | 如果启用并且场景中存在反射探头,则会为此GameObject拾取反射纹理并将粒子纹理设置为内置的着色器对应变量 |
Anchor Override | 使用“光探测器”或“反射探测器”系统时确定插值位置的变换 |
5.Velocity over Lifetime模块允许用户控制粒子在其生命周期内的速度
Linear X,Y,Z | X、Y和Z轴上的粒子线速度 |
Space | 指定线性X、Y、Z轴是指本地空间还是世界空间 |
Orbital X,Y,Z | X、Y和Z轴周围的粒子轨道速度 |
Offset X,Y,Z | 轨道中心的位置,作用于轨道运行的粒子 |
Radial | 粒子的径向速度远离或朝向中心位置 |
Speed Modifier | 在当前行进方向上或周围,应用乘数到粒子的速度 |
6.Limit Velocity over Lifetime模块控制粒子在其生命周期内的速度降低情况。
Separate Axes | 启用后,将坐标轴拆分为单独的X、Y和Z,即分离坐标轴 |
Speed | 设置粒子的速度限制 |
Dampen | 当粒子速度超过速度限制时,粒子速度降低的数值 |
Drag | 对粒子速度应用线性拖动 |
Multiply by Size | 启用后,较大的粒子会受到阻力系数的影响 |
Multiply by Velocity | 启用后,较快的粒子会受到阻力系数的影响 |
7.Inherit Velocity模块控制粒子的速度如何影响其父对象随时间的移动。
Mode | 指定发射器速度应用于粒子的不同模式 Current---发射器的当前速度将应用于每一帧上的所有粒子 Initial---当每个粒子生成时,发射器的速度将被施加一次。粒子产生后,发射器速度的任何改变都不会影响该粒子 |
Multiplier | 粒子需要继承的发射器速度的比例 |
8.Lifetime by Emitter Speed模块根据粒子生成时发射器的速度控制每个粒子的初始寿命。它将粒子的开始寿命乘以一个值,该值取决于生成粒子的对象的速度对于大多数粒子系统,这是游戏对象速度,但对于子发射器,速度来自子发射器粒子源自的父粒子。
Multiplier | 应用于粒子初始寿命的乘数。模块使用此值的方式不同,具体取决于用户设置的曲线模式 |
Speed Range | 最小和最大发射器将粒子系统贴图的速度设置为沿“倍增”曲线的值。如果发射器的速度等于第一个值,则乘数为曲线起点处的值。如果发射器的速度等于第二个值,则乘数为曲线末端的值。仅当“倍增”的曲线模式设置为“曲线”或“两条曲线之间随机”时,此属性可用 |
9.Force over Lifetime模块可以指定一个方向的力(如风、吸引力等)为粒子加速。
X、Y、Z | 给每个粒子施加到X、Y和Z轴上的力,下拉菜单中包含用于Randomize模式的添加力选项 |
Space | 选择是在局部空间还是世界空间中施加力 |
Randomize | 使用“两个常数”或“两个曲线”模式时,会导致在定义的范围内的每帧上选择新的力方向。该选项会造成不稳定的粒子运动 |
10.Color over Lifetime模块指定粒子的颜色和透明度在其生命周期中的变化情况。
Color | 粒子在其生命周期内的颜色梯度。渐变条的左侧点表示粒子寿命的开始,渐变条的右侧表示粒子寿命的终点 |
11.Color by Speed模块根据粒子的速度来设置粒子的颜色。
Color | 在速度范围内定义的粒子的颜色梯度 |
Speed Range | 颜色梯度映射到的速度范围的低端和高端(超出范围的速度将映射到渐变的终点) |
12.Size over Lifetime模块用来设置那些涉及根据曲线改变粒子大小的特殊效果。
Separate Axes | 在每个坐标轴上独立控制粒子路径 |
Size | 定义粒子尺寸在其生命周期内变化的曲线 |
13.Size by Speed模块根据速度改变粒子的大小。
Separate Axes | 在每个坐标轴独立控制粒子路径 |
Size | 定义粒子在速度范围内的大小的曲线 |
Speed Range | 粒子尺寸曲线映射到的速度范围的低端和高端(超出范围的速度将映射到曲线的终点) |
14.Rotation over Lifetime模块用来配置粒子在移动时的旋转情况。
Separate Axes | 启用后,可以为X、Y、Z轴单独设置旋转 |
Angular Velocity | 旋转速度,以度/秒为单位 |
15.Rotation by Speed模块根据粒子的移动速度改变来设置粒子的旋转速度。
Separate Axes | 启用后,可以为X、Y、Z轴单独设置旋转 |
Angular Velocity | 旋转速度,以度/秒为单位 |
Speed Range | 粒子尺寸曲线映射到的速度范围的低端和高端(超出范围的速度将映射到曲线的终点) |
16.External Forces模块用于修改风区的效果和粒子系统系统发射的粒子上的力场
Multiplier | 应用于风区力的比例值 |
Influence Filter | 选择是否包括基于层遮罩的力场或通过显式列表 |
Influence Mask | 使用层遮罩可以确定哪些力场会影响此粒子系统。当“影响过滤器”(Influence Filter)设置为“层遮罩”(Layer Mask)时可用 |
17.Noise模块用来给粒子添加湍流,它采用噪声算法来改变粒子的运动轨迹。
Separate Axes | 控制强度并在每个坐标轴上进行独立映射 |
Strength | 一条曲线,用于定义粒子在其生命周期内的噪声影响有多强。值越高,粒子移动越快 |
Frequency | 低值会产生柔和,平滑的噪声,而高值会产生快速变化的噪声。这可以控制粒子改变行进方向的噪声场,以及方向变化的突然程度 |
Scroll Speed | 随着时间的推移,该设置会导致不可预测和不稳定的粒子运动 |
Damping | 启用后,强度与噪声成正比 |
Octaves | 指定组合多少层重叠噪声场以产生最终频率值。越复杂,性能成本越高 |
Octave Multiplier | 对于每个额外的噪声层,按比例降低强度 |
Octave Scale | 对于每个噪声附加层,通过乘数调节频率 |
Quality | 虽然较低的质量设置会显著降低性能成本,但也会影响噪声的有趣程度 |
Remap | 将最终噪声值重新映射到不同的范围 |
Remap Curve | 描述最终噪声值如何变化的曲线。例如,用户可以使用此选项来选择噪声场的较低范围,并通过创建从高处开始并以零结束的曲线来忽略较高的范围 |
Position Amount | 用于控制噪声对粒子位置影响程度的乘数 |
Rotation Amount | 用于控制噪声影响粒子旋转的乘数,以度/秒为单位 |
Size Amount | 用于控制噪声对粒子路径影响程度的乘数 |
18.Collision模块控制粒子与场景中的物体是否会产生碰撞。
Type | 选择平面模式或世界空间模式 Planes 可拓展的转换列表,用于定义碰撞平面 |
Visualization | 选择是否将Scene视图中的碰撞平面,Gizmo显示为线框网格或实体平面 |
Scale Plane | 用于可视化的平面大小 |
Dampen | 碰撞后失去的粒子速度的分值 |
Bounce | 碰撞后从表面反弹的粒子速度的分值 |
Lifetime Loss | 粒子在碰撞时失去的总生命周期的分值 |
Min Kill Speed | 碰撞后行驶速度低于此速度的粒子将从系统中移除 |
Max Kill Speed | 碰撞后行驶速度高于此速度的粒子将从系统中移除 |
Radius Scale | 允许用户调整粒子碰撞球体的半径,使其更贴近粒子图形的可视边缘 |
Send Collision Messages | 启用后,则可以通过OnParticleCollision函数从脚本中检测粒子碰撞 |
Visualize Bounds | 在Scene视图中每个粒子的碰撞边缘渲染为线框形状 |
19.Triggers模块能够在于场景中的一个或多个碰撞器交互时触发回调。粒子进入或离开碰撞器时,或者粒子位于碰撞器内部或外部时,可以触发回调。用户可以使用回调作为一种简单的方式来在粒子进入碰撞器时消除它(例如防止雨滴穿透屋顶),或者此模块用来修改任何或所有粒子的属性。该模块还提供了Kill选项以自动删除粒子,而Ignore选项表示忽略碰撞事件。
Inside | 选择Callback,粒子位于碰撞器内部时触发事件。选择Ignore以便在粒子位于碰撞器内部时不触发事件。选择Kill以消除碰撞器内部的粒子 |
OutSide | 选择Callback,粒子位于碰撞器外部时触发事件。选择Ignore以便在粒子位于碰撞器外部时不触发事件。选择Kill以消除碰撞器外部的粒子 |
Enter | 选择Callback,粒子进入碰撞器时触发事件。选择Ignore以便在粒子进入碰撞器时不触发事件。选择Kill,当粒子进入碰撞器时消除它们 |
Exit | 选择Callback,粒子离开碰撞器时触发事件。选择Ignore以便在粒子离开碰撞器时不触发事件。选择Kill,当粒子离开碰撞器时消除它们 |
Collider Query Mode | 指定此粒子系统用于获取有关粒子与之交互的碰撞器的信息的方法。这会增加处理触发器模块的资源强度,因此,如果不需要任何额外的冲突信息,请将此属性设置为Disabled Disabled---不获得任何关于每个粒子与哪个对撞机交互的信息 One---获取有关每个粒子交互的第一个碰撞器的信息。如果一个粒子与帧中的多个碰撞器交互,则会返回与该粒子交互的碰撞器列表中的第一个碰撞器 All---获取每个粒子与之交互的每个碰撞器的信息 |
Radius Scale | 此参数设置粒子的碰撞器边界,允许事件在粒子接触碰撞器之前或之后出现。例如,用户可能希望粒子在弹回之前看起来稍微穿透碰撞对象的表面,在这种情况下,用户可以将“半径比例”设置略小于1,注意,当事件实际发生时,此设置不会更改触发器,但可以延迟或提高触发器的视觉效果。输入1表示事件在粒子碰到碰撞器时出现;输入一个小于1的值,触发器在粒子穿透碰撞器后出现;输入一个大于1的值,触发器在粒子穿透碰撞器前出现 |
Visualize Bounds | 允许用户在编辑器窗口中显示粒子的碰撞器边界 |
20.Sub Emitters模块允许用户设置子发射器。这些是在粒子寿命的某些阶段在粒子的位置创建的附加粒子发射器
配置子发射器的列表,并选择它们的触发条件以及它们从父粒子继承的属性
21.Texture Sheet Animation模块将纹理视为动画帧播放的单独子图像的网格
Mode | 选择网格或纹理图像 |
Tiles | 纹理在X和Y方向上划分的平铺数量 |
Animation | 动画模式可以设置为整张或单行(即工作表的每一行代表一个单独的动画序列) |
Time Mode | 选择粒子系统在动画中对帧采样的方式 |
Frame over Time | 一条曲线,指定动画帧随着时间的推移如何增加 |
Start Frame | 允许用户指定粒子动画从哪一帧开始(对于在每个粒子上随机定向动画非常有用) |
Cycles | 动画序列在粒子生命周期内重复的次数 |
Affected UV Channels | 允许用户准确指定受到粒子系统影响的UV流 |
22.Lights模块用来将实时灯光添加到一定比例的粒子中。
Light | 指定一个Light Prefab,描述粒子灯的外观 |
Ratio | 介于0和1之间的值,描述将接收光的粒子的比例 |
Random Distribution | 选择是随机分配还是定期分配灯光。启用后,每个粒子都有一个随机接收基于比例的光的机会。较高的值增加了粒子具有光的概率。设置为false时,Ratio控制新创建的粒子接收光的频率(例如每第N个粒子接收光) |
Use Particle Color | 启用后,Light的最终颜色将通过其附加的粒子的颜色进行调制。不启用时,则使用Light颜色而不进行任何修改 |
Size Affects Range | 启用后,指定的灯光范围将乘以粒子的大小 |
Alpha Affects Intensity | 启用后,光的强度乘以粒子Alpha值 |
Range Multiplier | 使用此曲线在粒子的生命周期内将自定义倍增器应用于灯光范围 |
Intensity Multiplier | 使用此曲线将自定义乘数应用于粒子生命周期内的光强度 |
Maximum Lights | 此设置可以避免意外创建大量灯光,这有时会使编辑器无响应或使应用程序运行的非常慢 |
23.Trails模块用于给粒子添加运动轨迹,即粒子拖尾。
Mode | 选择生成粒子拖尾的模式。Particle mode产生一种效果,每个粒子在其路径中留下固定的痕迹,Ribbom mode创建一条根据年龄连接每个粒子的路径 |
Ratio | 介于0和1之间的值,描述分配了Trail的粒子的比例。Unity随机分配Trail,因此该值表示概率 |
Lifetime | Trail中每个顶点的生命周期,表示为它所属粒子的生命周期的乘数。当每个新顶点添加到Trail时,它在存在的时间超过该粒子特效总生命周期后消失 |
Minimum Vertex Distance | 定义粒子在接收新顶点之前必须经过的距离 |
World Space | 启用后,即使使用本地空间,Trail顶点也不会相对与粒子系统的GameObject移动。相反,Trail顶点在世界空间中被丢弃,并忽略粒子系统的任何移动 |
Die With Particles | 如果选中此项,Trail会在粒子死亡时立即消失。未选中则剩余的Trail会根据自己的剩余生命周期自然消失 |
Texture Mode | 选择应用于Trail的纹理是沿其整个长度拉伸,还是重复N个距离单位。重复率基于材料的平铺参数进行控制 |
Size affects Width | 启用后,Trail宽度将乘以粒子的大小 |
Size affects Lifetime | 启用后,Trail寿命将乘以粒度 |
Inherit Particle Color | 启用后,Trail颜色将由粒子颜色调制 |
Color over Lifetime | 一条曲线,用于控制整个Trail在其附着的粒子的整个生命周期内的颜色 |
Width over Trail | 用于控制Trail宽度的曲线 |
Color over Trail | 用于控制Trail颜色的曲线 |
Generate Lighting Data | 启用后可构建包含法线和切线的Trail几何体。这允许它们使用场景照明的材质,例如通过标准着色器或使用自定义着色器 |
24.Custom Data模块允许用户在编辑器中定义或在脚本中设置要附加到粒子的自定义数据格式。Custom Data的Mode属性可以是Vector的形式,最多4个MinMaxCurve组件,也可以是Color的形式,这是一个支持HDR的MinMAxGradient。Custom Data在脚本和着色器中驱动自定义逻辑。用户通过单击Custom Data模块面板中输入框后面倒三角按钮,可在下拉菜单中自定义每个曲线/渐变的情况。例如,曲线可以用于自定义Alpha测试,渐变可以用于向粒子添加辅助颜色。通过编辑标签,可以很方便的在UI中保留每个自定义数据条目的记录。