Unity粒子系统

 粒子系统 部件通过产生和场景中的动画大量小的2D图像模拟流体实体,如液体,烟雾,云和火焰。

  • Main module//主要模块
  • Emission//发射
  • Shape//形状
  • Velocity Over Lifetime//粒子在生命周期内的速度
  • Limit Velocity Over Lifetime//粒子在生命周期内的极限速度
  • Inherit Velocity//速度继承
  • 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//拖尾
  • Renderer//渲染
  • Resimulate
  • Selection
  • Bounds

unity 粒子系统 粒子数量 unity粒子系统详解_生命周期

Particle System 初始化

 

unity 粒子系统 粒子数量 unity粒子系统详解_生命周期_02

  • 持续时间(Duration):粒子系统发射粒子的持续时间
  • 循环(Looping):粒子系统是否循环
  • 预热(Prewarm):当looping开启时,才能启动预热(Prewarm),游戏开始时粒子已经发射了一个周期。
  • 初始延迟(Start Delay):粒子系统发射粒子之前的延迟。注意在prewarm(预热)启用下不能使用此项。
  • 初始生命(Start Lifetime)以秒为单位,粒子存活数量。
  • 初始速度(Start Speed):粒子发射时的速度。
  • 初始大小(Start Size):粒子发射时的大小
  • 初始旋转(Start Rotation):粒子发射时的旋转值。
  • 初始颜色(Start Color):粒子发射时的颜色
  • 重力修改器(Gravity Modifier):粒子在发射时受到的重力影响。
  • 继承速度(Inherit Velocity):---控制粒子速率的因素将继承自粒子系统的移动(对于移动中的粒子系统)。
  • 模拟空间(Simulation Space):粒子系统在自身坐标系还是世界坐标系。
  • 唤醒时播放(Play On Awake):如果启用粒子系统当在创建时,自动开始播放。
  • 最大粒子数(Max Particles):粒子发射的最大数量

Main module

Auto Random Seed            

粒子系统每次播放时都是不同的。当设置为false时,系统每次播放时都是相同的。

Random Seed     

当禁用自动随机种子时,这个值被用来创建一个惟一的可重复的效果。


Stop Action


 当所有属于系统的粒子都完成后,就有可能使系统执行一个动作。当所有 的粒子都死亡时,一个系统就会停下来,它的年龄已经超过了它的持续时间。 对于循环系统,只有当系统通过脚本停止时才会发生这种情况。


    Disable

GameObject是禁用的。

    Destroy

GameObject被销毁。.

    Callback

The OnParticleSystemStopped callback is sent to any scripts attached to the GameObject.

OnParticleSystemStopped 回调被发送到GameObject的任何脚本上

属性细节:

系统在特定的持续时间内发射粒子,并可以使用Looped 属性将其设置为连续发射。这样可以让粒子间歇或连续地发射; 例如,一个物体可能会在短时间内喷出烟雾,或者以稳定的速度喷出烟雾。

“ Start ”属性(生命周期,速度,大小,旋转和颜色)指定发射时粒子的状态。您可以使用3D Start Size属性(请参见下面的非均匀粒子缩放)独立指定粒子的宽度,高度和深度。

所有粒子系统使用在物理设置中指定的相同重力矢量。重力倍增器值可用于缩放重力,或将其设置为零时关闭。

“ 模拟空间”属性决定粒子是否随粒子系统父对象(自定义对象)一起移动,或独立于游戏世界。例如,云,软管和火焰喷射器等系统需要独立于其父GameObject进行设置,因为它们倾向于留下在世界空间中持续存在的痕迹,即使产生它们的对象四处移动。另一方面,如果使用粒子在两个电极之间产生火花,则粒子应该与父物体一起移动。有关粒子如何跟随其变换的更高级控制,请参阅Inherit Velocity模块上的文档。

Non-uniform particle scaling

3D Start Size属性允许您独立指定粒子的宽度,高度和深度。在“粒子系统主模块”中,选中“3D Start Size”复选框,然后输入粒子初始x(宽度),y(高度)和z(深度)的值。请注意,z(深度)仅适用于3D网格粒子。您还可以在两个常量或曲线之间的范围内为这些属性设置随机值。

您可以在“粒子系统Main module”中使用“ 分离轴(Separate Axes)”选项在粒子系统Main module中设置粒子的初始大小,并在粒子的生命周期中设置粒子的大小。您还可以使用Size by Speed模块中的Separate Axes选项来设置粒子相对于其速度的大小。

Emission module

该模块中的属性影响粒子系统排放的速率和时间。

unity 粒子系统 粒子数量 unity粒子系统详解_粒子系统_03

属性:

Property

Function

Rate over Time

单位时间发射的粒子数量。

Rate over Distance

单位距离发射的粒子数量发生了变化。

Bursts

爆发是产生粒子的事件。这些设置允许粒子在指定的时间发射。

    Time

设置发射突发的时间(以秒为单位,在粒子系统开始播放之后)。

    Count

设置可能发射的粒子数量的值。

    Cycles

设定播放次数的次数。

    Interval

设置触发每个周期之间的时间(以秒为单位)。

细节:

排放率可以是恒定的,也可以根据曲线在系统的使用寿命内变化。

如果“ Rate over Distance ”模式处于活动状态,则会由父对象移动的每单位距离释放一定数量的粒子。这对于模拟物体运动

中实际产生的粒子(例如灰尘轨道上的车轮灰尘)非常有用。

如果“ Rate over Time”处于活动状态,则无论父对象如何移动,每秒都会发射所需数量的粒子。此外,您可以添加在特定时

间(例如,产生烟雾的蒸汽火车烟囱)出现的额外颗粒爆炸

Shape Module

这个模块定义了粒子可以发射的形状(体积或表面)以及起始速度的方向。“形状发射器的形状 ”(Shape)属性定义了发射体积的形状,其余的模块属性取决于您选择的形状。

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

以下部分详细介绍每个Shape的属性。

Sphere, Hemisphere(球体,半球)

unity 粒子系统 粒子数量 unity粒子系统详解_粒子系统_04

注意:Sphere和Hemisphere具有相同的属性。

Property

Function

Shape

发射器的形状。

Sphere (球体范围)

均匀的辐射在各个方向。

Hemisphere  (半球)

在平面的某一侧均匀地发射。

Radius (半径)

圆形发射的半径

Radius Thicknes(半径厚度) 

值为0将从形状的外表面发出。值为1将使用整个卷。之间的值将使用一定比例的体积。

Position

对发射粒子所使用的发射器形状进行偏移。

Rotation

旋转发射粒子

Scale

改变发射器形状的大小

Align to Direction(方向对齐)

使用这个复选框来确定粒子的初始方向。例如要实现,在碰撞时,汽车的车身油漆脱落效果。也可以通过Main module中的Start Rutation来设置粒子的方向

Randomize Direction(随机方向)

将粒子方向与随机方向混合。当这个设置为0时,这个设置没有效果。当它被设为1时,粒子的方向是完全随机的。

Spherize Direction(球面化方向)

将粒子方向朝向球形方向,从它们的变换中心向外传播。值为0时无效。当它被设置为1时,粒子方向从中心向外指向(与形状设置为球体时的行为相同)。

Randomize Position

设置一个值随机移动粒子至此值的位置,值为0时无效,0以外的值都是有效值(PS:亲测这里的值只能是正数,负数同样为无效值,这里和官方文档描述不符)

Cone(锥体)

unity 粒子系统 粒子数量 unity粒子系统详解_粒子系统_05

Angle(角度) 

圆锥体的角度。角度0产生一个圆柱体,而角度90产生一个平面圆盘。

Arc (弧度)

形成发射器形状的整个圆的角部分。

Mode(模式)

设置在圆弧周围生成粒子,Random模式,会在圆弧周围随机生成粒子。Loop模式则会在形状的圆弧周围顺序生成粒子,并在每个循环结束时循环回到起点。Ping-Pong每个连续的循环发生在与最后相反的方向。其他与Loop模式相同。BurstSptread模式将粒子生成均匀地分布在形状周围。与缺省的随机行为相比,这可以用来给予粒子的均匀传播,在粒子可能不均匀地聚集在一起。最好用于突发排放

Spread

 控制可能产生颗粒的圆弧周围的离散间隔。 例如,值为0将允许粒子在弧周围的任何地方产生,并且值0.1将仅在形状周 围以10%的间隔产生粒子。

Speed

设置发射位置在圆弧周围移动的速度值。使用值字段旁边的小黑色下拉列表将该值设置为“Constant  ”,使其始终保持不变,或将Curve 值随时间更改。

Length

圆锥的长度。只在适用于 Emit from:模式,属性设置为

Volume

Emit from:(发射自)

选择圆锥发出的部分:Base or Volume.

PS:Emit from :粒子发射的位置

unity 粒子系统 粒子数量 unity粒子系统详解_ci_06

Base:从底部随机点发射

Base Shell:从底部的圆边向上随机点发射

Volume:在锥体内部圆底上方随机点发射

Volume Shell:从底部圆边上方延锥面随机点发射

PS:其他属性同Sphere, Hemisphere(球体,半球)

Box(框)

unity 粒子系统 粒子数量 unity粒子系统详解_unity 粒子系统 粒子数量_07

Property

Function

Shape

The shape of the emission volume.

Box

从边缘、表面或盒子形状的物体发射。粒子在发射体的前向(Z)方向运动。

Emit from:

选择要发射的盒子的一部分EdgeShell, or Volume

PS:其他属性同Sphere, Hemisphere(球体,半球)

Mesh, MeshRenderer, SkinnedMeshRenderer

unity 粒子系统 粒子数量 unity粒子系统详解_生命周期_08

Mesh,MeshRenderer和SkinnedMeshRenderer具有相同的属性。

Property

Function

Shape

The shape of the emission volume.

Mesh(网孔)

通过检查员提供的任意网格形状发射。

MeshRenderer(网格渲染) 

从GameObject的Mesh渲染器的引用发射。

SkinnedMeshRenderer(去表面网格渲染)

从游戏对象的Skinned Mesh Renderer的引用发射。

Emission drop-down(发射下拉)

使用此下拉菜单来选择从哪个粒子发射。为顶点发出的粒子选择顶点,从边缘发出粒子的边,或者从三角形发出的粒子的三角形。这是默认设置为顶点。

Mesh(网孔)

提供发射器形状的网格。

Single Material(单一材料)

粒子从特定的子网格(由材料索引号标识)发射。则会显示一个数字字段,允许您指定材料索引编号。

Use Mesh Colors(使用网格颜色)  

 使用或忽略网格颜色。

  Normal Offset网格表面粒子的发射的距离

(在表面法线方向)

网格细节

可以选择仅使用“单一材质”复选框从特定材质(子网格)发射,并使用“正常偏移”属性偏移沿网格法线的发射位置。这个选项允许用户从Mesh表面偏移颗粒。

Use Mesh Colors复选框也可以忽略Use Mesh Colors。

Circle(圆)

均匀的从中心或边缘发射。粒子只在圆的平面内移动。

unity 粒子系统 粒子数量 unity粒子系统详解_ci_09

PS:属性详细同上

Edge(边缘)

Edge:线段发射。粒子在发射器物体的向上(Y)方向上移动。

unity 粒子系统 粒子数量 unity粒子系统详解_ci_10

PS:属性详细同上

Donut(甜甜圈)

unity 粒子系统 粒子数量 unity粒子系统详解_生命周期_11

PS:属性详细同上