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
Particle System 初始化
- 持续时间(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
该模块中的属性影响粒子系统排放的速率和时间。
属性:
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(球体,半球)
注意: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(锥体)
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 :粒子发射的位置
Base:从底部随机点发射
Base Shell:从底部的圆边向上随机点发射
Volume:在锥体内部圆底上方随机点发射
Volume Shell:从底部圆边上方延锥面随机点发射
PS:其他属性同Sphere, Hemisphere(球体,半球)
Box(框)
Property | Function |
Shape | The shape of the emission volume. |
Box | 从边缘、表面或盒子形状的物体发射。粒子在发射体的前向(Z)方向运动。 |
Emit from: | 选择要发射的盒子的一部分Edge, Shell, or Volume |
PS:其他属性同Sphere, Hemisphere(球体,半球)
Mesh, MeshRenderer, SkinnedMeshRenderer
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(圆)
均匀的从中心或边缘发射。粒子只在圆的平面内移动。
PS:属性详细同上
Edge(边缘)
Edge:线段发射。粒子在发射器物体的向上(Y)方向上移动。
PS:属性详细同上
Donut(甜甜圈)
PS:属性详细同上