如何在Unity中实现粒子效果?
首先,右键点击 Hierarchy栏,选择effects->Particle System,这样你就新建了一个粒子系统,如图所示:
下面来介绍右侧监视器(Inspector)内的内容:
首先是Transform,分别为Position(位置)、Rotation(旋转)、Scale(缩放),和其他组件一样,在这里不再赘述。
接下来是与粒子系统有关的值了。
首先看第一个模块Particle System,
依次为:
Duration(持续时间),设定的值为秒;
Looping(是否循环),勾选则循环播放粒子效果;
Prewarm(预热),只有勾选了Looping后才能勾选。意思是粒子效果在实际场景中会预先加载,不会切换到场景后粒子效果突然出现而显得比较突兀,比如火焰效果就会用到Prewarm;
Start Delay(延迟时间),单位为秒,设置粒子效果的延迟播放时间,0则为立即播放;
Start Lifetime(生命时长),粒子效果的生命时长,指粒子从出发点被发射出后能在屏幕上存活的时间。右侧下拉菜单能切换Constant(常量)、Curve(曲线)、Random Between Two Constants(在两个常量之间随机)、Random Between Two Curves(在两个曲线之间随机);
Start Speed(初始速度),控制粒子飞行速度。右侧下拉菜单能切换Constant(常量)、Curve(曲线)、Random Between Two Constants(在两个常量之间随机)、Random Between Two Curves(在两个曲线之间随机);
3D Start Size(是否控制每个粒子每个轴的大小),勾选后会允许你通过调整X、Y、Z轴调整粒子的大小,不勾选的话三个轴一起调整;
3D Start Rotation(是否控制每个粒子每个轴的旋转),类似3D Start Size;
Randomize Rotation(使一些粒子的自旋方向相反);
Start Color(初始颜色),同样可以选择单颜色、区间、梯度;
Gravity Modifier(重力密度),调整粒子所受重力影响的程度,为零则关闭重力效果;
Simulation Speed(模拟速度),调整整个粒子系统的速度;
Delta Time(单位时间),有两个选项Scaled(标定)和Unscaled(非标定),其中Scaled使用Time Manager中的Time Scale(时间比例)值,而Unscaled则忽略该值。这对于出现在暂停菜单中的粒子效果是有用的;
Scaling Mode(缩放模式),有三个选项Hierarchy(层次结构)、Local(本地)或Shape(形状)。Local仅应用粒子系统本身的变换,忽略任何父对象。Shape则将比例应用到粒子的起始位置,但不影响它们的大小;
Play On Awake(创建时启动),如果启用,粒子系统会在创建时启动。
Emitter_Velocity(发射速率),有两种模式可以选择Rigidbody(刚体)和Transform(变换),分别为使用刚体组件和变换组件来计算速度;
Max Particles(最大粒子数量),允许存在的最大数量;
Auto Random Seed(自动随机种子),如果启用,粒子系统每次播放都看起来不同。设置为false时,每次播放都完全一样;
Stop Action(停止动作),当属于系统的所有粒子都已完成时,可以使系统执行一个动作。对于循环系统,只有通过脚本停止时才会发生这种情况。
第二个模块Emission(发射模块):
Rate over Time(随时间的速率),每单位时间发射的粒子数量;
Rate over Distance(通过距离的速率),每单位距离发射的粒子数量;
Burst(爆发),产生粒子爆发的效果,通过Time(时间)、Count(数量)、Cycles(周期)、Interval(间隔)四个参数调整。
第三个模块Shape(形状模块):
控制粒子的发射形状,默认是Cone(锥形),有多种形状可选,在这里不再赘述。
第四个模块Velocity over Lifetime(生命周期中的速度模块):
X,Y,Z:分别控制三个轴方向上的速度,可以创建出向特定方向漂移的粒子。
Space(空间):确定是本地的轴还是世界空间中的轴。
Speed Modifier(速度调节器):延粒子的当前前进方向对粒子的速度应用乘数。
第五个模块Limit Velocity over Lifetime(限制生命周期中的速度模块):
Separate Axes(分开轴):将每个轴分为独立的组件。
Speed(速度):设置粒子的速度限制。
Dampen(限制):超过速度限制时,粒子速度降低的部分。
Drag(拖拽):应用于粒子速度的线性阻力。
Multiply by Size(乘以尺寸):启用后,较大的粒子受到阻力系数的影响越大。
Multiply by Velocity(乘以速度):启用后,较快的粒子受到阻力系数的影响越大。
这个模块用于模拟减缓粒子的空气阻力是非常有用的。特别是当降低曲线用于降低速度限制时。例如,一场爆炸或烟火最初以极快的速度爆发,但粒子因空气阻力而迅速减速。
第六个模块Inherit Velocity(继承速度模块):
Mode(模式):指定发射器速度应用于粒子的方式。Current(当前)时发射器当前的速度将应用于每一帧的所有粒子。如果发射器加速或减速,所有的粒子都会加速或减速。Initial(初始)时每个粒子诞生时施加一次发射器的速度,之后发射器的速度将不会影响粒子。
Multiplier(乘数):粒子应继承的发射器的速度比例。
这种效果对于从移动物体发射粒子非常有用,例如来自汽车的尘埃,来自火箭的烟雾,来自蒸汽火车烟囱的蒸汽,或者粒子最初应以速度的百分比移动的任何情况。当主模块中的Space设置为World时,该模块仅对粒子有影响。
第七个模块Force over Lifetime(生命周期中的力模块):
X、Y、Z:对每个粒子施加在三个轴上的力。
Space(空间):选择力是在本地还是世界空间中应用。
Randomize(随机化):随机力的方向,会导致更不稳定的运动。
流体在移动时常常受到力的影响。例如,烟雾从周围的热空气中升起,会稍微加速。
第八个模块Color over Lifetime(生命周期中的颜色模块):
color(颜色):粒子在整个生命周期中的颜色梯度。梯度条最左边的点表示粒子寿命的开始,梯度条的右侧表示粒子寿命的结束。
许多类型的自然和幻想粒子随着时间的推移颜色不同,因此这种属性有很多的用途。例如,发光的烟火在穿越空气时会冷却,而魔法可能会爆发出彩虹般的色彩。同样重要的是alpha(透明度)的变化。当粒子的寿命结束时(如烟花、火花和烟雾颗粒),它们的褪色或消散都是非常普遍的,而渐变非常适合应用于这些场景。
第九个模块Color by Speed(速度颜色模块):
Color(颜色):定义在速度范围内的粒子颜色梯度。
Speed Range(速度范围):颜色梯度映射到速度范围的最低端和最高端(速度范围外的将被映射到端点)。
燃烧时发出的微粒(如火花)在空气中快速移动时会更明亮地燃烧(暴露在更多空气中),但随着速度变慢,会稍微变暗。该模块可以用来模拟这个效果。