Unity 粒子系统参数一

了解粒子系统,必须先了解每一个属性都代表了什么,之后才能根据这些原理来调整出自己满意的效果。 
主面板ParticleSystem: 
- Duration:粒子发射周期(发射一次持续的时间),如图的意思就是在发射5.0秒以后进入下一个粒子发射周期。如果没有勾选looping的话,5.0秒之后粒子会停止发射。 

- Looping:粒子按照周期循环发射。 
- Prewarm:预热系统,比如说我有一个空间大小的粒子系统,但是粒子发射速度有限,我想在最开始的时候让粒子充满空间,此时就应该勾选Prewarm。 
- StartDelay:粒子延时发射,勾选后,延长一段时间才开始发射(延迟预热不能同时存在)。 
- StartLifeTime:粒子从发生到消失的时间长短(每个粒子的生命周期)。 
- StartSpeed:粒子初始发生时候的速度。 
- 3DStartSize:这个属性是当你需要把粒子在某一个方向上扩大的时候使用。 
- StartSize:粒子初始的大小。 

  

  英文解释:粒子的初始大小

  

    1.Constant

    表示恒定的,所有的粒子生命周期都一样。

    2.Curve

    表示曲线,调整数值了之后,产生的粒子有大有小,可以自己添加关键帧控制曲线形状,也可以通过Inspector面板最下方的常用曲线图选择系统自带曲线。

    3.Random Between Two Constants

    表示在两个常量中取任意值作为粒子的大小,是做随机效果最常用的模式,模拟自然发生的随和效果,符合视觉效果。

    4.Random Between Two Curves

    表示通过双曲线控制粒子的大小,比单曲线做出来的效果更加细腻细致,同时也更加复杂,参数的调整和使用,可以参照Curve。

- 3DStartRotation:需要在一个方向旋转了子的时候可以使用。 
- StartRotation:粒子初始旋转。 
- RandomizeRotation:随机旋转粒子方向,感觉在3D粒子的情况下,尤其是圆形的没什么用。 
- StartColor:粒子初始颜色,可以调整加上渐变色。

开始颜色值。粒子出生具有的颜色。

在第二种我这里讲下,这个是颜色渐变值,什么意思?当我们选择Gradient渐变的模式时:

会出现这编辑器,那么怎么制作呢?很简单,我们只要在空白双击就会出现指标,然后不同的指标改变不同的颜色,那么怎么会有上下浮标。

这里上面是Alpha的值,下面是Color的值。

修改完颜色之后,我们来看看效果。

可以看到颜色先是红色,再是紫色,然后蓝色,最后白色,是不是我们上面调的颜色顺序,也就是说他是根据Duration然后改变不同的颜色。

 
- GravityModifier:重力修正。 


- SimulationSpace:a.Local,此时粒子会跟随父级物体移动。b.World,此时粒子不会跟随父级移动。c.Custom,粒子会跟着指定的物体移动。 
- SimulationSpeed:根据Update模拟的速度。 
- DeltaTime:一版的DeltaTime都是1,如果需要用到Sacled是在游戏需要暂停的时候,根据TimeManager来定。如果选择UnScale的话,就会忽略时间的影响。 
- ScalingMode:Local:粒子系统的缩放和自己Transform的一样会忽略父级的缩放。Hierarchy:粒子缩放跟随父级。Shape:将粒子系统跟随初始位置,但是不会影响粒子系统的大小
- MaxParticles:最多粒子数。就是一个duration内发射粒子最多数量。如果是1的话,一个duration只发射1.
- AutonRandomSeed:随机种子,如果勾选会生成完全不同不重复的粒子效果,如果勾选即为可重复。

发射器相关的属性,可以看到第一个属性Rate:

1.Rate:每秒发射多少粒子(简称发射速率)。什么意思,比如你的Duration是5秒,Max Particles是50的话,你Rate为10,那么就是每秒发射10个粒子,5秒就发射50个。但是现在如果把Rate改成50的话,那么一秒一次性发射50个粒子,也就是说把所有的发射完了,那么就下来的4秒就没有粒子可以发射了。

2.Bursts:粒子集。可以看到粒子集右边有个+号的按钮,我们点击就会出现Time和Particles的参数选择。

那么这两个参数是干嘛用的,其实就是在0.00时刻,发射30个粒子,结合上图显示的参数。

我们还可以点击+号继续添加不同时刻发射不同数量的粒子。比如我继续添加在4.00时刻发射30粒子。

这里注意下,这个Time时刻是不能超过Duration持续时间,不然的话是没有效果的,还有发射粒子的总数和不能超过Max Particles,不然的话发射总数还是Max Particles,只不过超过的部分自动被截断了。还有得吧Rate改成0,因为没有速率可言。

然后观察下效果:

可以看到在0.00时刻发射30个,在4.00时刻发射20,因为Max Particles才50,面前已经30,所以最后50-30=20个。

可以看到这个子模块的参数是跟形状有关:

1.Shape:发射形状。粒子被约束在这个形状中发射。我们看看效果图就知道了。就拿这个Cone锥形来看:

可以看见粒子发射总是被约束在这个锥形中。

我们看看总共有几种形状:

1.Sphere:球体。粒子被约束在这个球体中发射。

(1.Radius。球体半径。

(2.Emit from Shell:是否粒子发射是在圆形的表面发射。默认是圆形体内任意位置。

(3.Random Direction:是否是随机方向。默认是跟形状相关的从中心向外发散方向,比如球体就是爆炸方向。如果是随机方向的话,就是胡乱发射。但是他还是被约束在球体里面发射。只不过发射的方向变了而已。

 2.HemiSphere:半球体。粒子被约束在这个半球体内发射。

(1.Radius:半球体的半径。

(2.Emit from Shell:是否粒子发射是在半球体的表面发射。默认是半球体内任意位置。

(3.Random Direction:跟球体类似。本来是从球体中心发散出去,但是勾选这个之后,就随机方向发射。

3.Cone:椎体。粒子被约束在这个椎体中发射出去。

(1.Angle:锥形斜面和垂直方向的夹角。如0度就是圆柱。90度就是跟平面类似。

(2.Radius:锥形底面的半径。

(3.Length:底面和顶面的距离。也就是圆锥的高。这个参数是受第4个参数的影响,如果是从Base(底面)发射,那么Length就没有用。如果是Volume(体积)发射,那么Length就有用。因为体积肯定和高度有关嘛。

(4.Emit form:从哪里发射:总共有4种:

1.Base:圆锥底面。粒子是从圆锥体的底面的任意位置沿着体积方向发射出去。

2.BaseShell:圆锥底面周长边。粒子是从圆锥底面的周长边沿着侧表面的方向发射。与Base唯一的区别就是一个是沿体积,一个是沿侧面。

3.Volume:体积。粒子是从圆锥体内的任意位置沿着体积的方向发射出去。

4.VolumeShell:体积侧面。粒子是从圆锥体的侧面的任意位置沿着侧面方向发射出去的。

(5.Random Direction:与上面讲的随机类似。

4.Box:长方体。粒子被约束在长方体内发射。

(1.Box X:x方向上的长度。

(2.Box Y: y方向上的长度。

(3.Box Z:z方向上的长度。

默认发射粒子是在长方体内的任意位置沿着z方向(与xy平面垂直)发射。

(4.Random Direction:类似不讲了。

5.Mesh:网格。粒子被约束在网格里面发射。

可以看到我这里选择了一个Plane网格,那么上面的参数Triangle是什么鬼。这个参数是表示粒子在哪里反射。总所周知,网格由顶点,线段,面构成。那么Triangle代表是三角面。

他这里有三个选择:

1.Vertex:粒子就是从网格的顶点发射出去。

2.Edge:粒子是从网格的边长发射出去。

3.Triangle:粒子从网格的面发射出去。

OK,经过长篇大幅,终于把Shape这个组件讲完了。我们来总结下这个Shape的作用,他主要是约束粒子发射的形状,比如火焰当然得用Cone锥形,然后夜明珠就得用Sphere球体。

行,我们讲下个组件:Velocity over Lifetime 速度受粒子的生命周期影响。

假如说我们将x改成4,那么粒子在x方向的速度是4,那么在粒子的生命周期内,他的x方向速度是4,其他方向速度是0。也就是说他会偏向x方向移动。

同理,y和z方向也是类似的。

那么下面的Space是什么,就是这个x方向的速度是受父类速度影响(Local)还是不受父类影响(World)。我具体研究了下,发现根本没啥屌用。主要还是看前面的Simulation Space的参数。所以这个参数我们暂时不管他。

我们总结下,这个组件有啥用,主要是根据不同类型粒子改变不同方向上的速度。如下雨,肯定不是直直的下着带有点倾斜的下着,所以这里改变下方向速度就可以实现。

猜你喜欢

转载自blog.csdn.net/Happy_zailing/article/details/84347432