Start size会随着粒子所在的父级空间下改变,使用sub emissions把粒子设为子级的时候要注意这点。
粒子系统里最不常用的就是继承速度inhert velocity和外部力external force,基本上不用去纠结他们是干什么的,不管就行。
把粒子速度设为负,就可以让发射粒子变成粒子集中,有种蓄力的效果。
Emission的over distance可以让粒子系统物体在移动的时候才发射粒子。
如果希望点击一个父物体就能播放所属的所有子粒子特效,那么这个父物体应该挂上一个没有任何显示效果的粒子系统,这样点击该父物体时就可以播放所有子粒子系统了。
上述的做法虽然方便,但是务必记得给父物体粒子系统勾上looping。如果父粒子消勾了looping并且播放时间达到了父物体的duration,那么无论子粒子系统有没有达到duration,整个特效都会被强行暂停。也就是说,子粒子系统会受父粒子系统的looping影响。
上面这个做法只是为了方便预览特效,真正使用该特效的时候应该把父物体的粒子系统移除掉,不然的话就算该粒子系统没有渲染,它也会消耗性能去计算时间。
Start lifetime的curve可以给发射出的粒子们营造一种随机生命的效果
初始化中的max particles可以限定粒子的最多数量,并且影响到下面的发射器组件。只要超过了初始化中设定的最大发射数,发射器中无论发射多少个都不会超过该最大发射数。
Duration指的是该粒子系统的总工作时长,如果不勾上looping,那么duration有多长粒子系统就工作多久,到时间就会自动停止工作。而lifetime是指发射出来的粒子在场景中的存活时间,这两个东西比较容易弄混淆。
Limit velocity是一种为粒子速度添加阻尼的方案,但注意在使用separate axis来为某一个轴添加阻尼时,dampen必须有大于0的值才会起作用。
Shape中的emit from有两种发射粒子的模式:base基于原点发射,volum基于体积发射。
Force用于模拟外力,如风等施加给粒子的力都可以用这个模块来做。
Color用于改变粒子的颜色,上为透明度,下为颜色。
Color by speed可以根据粒子的速度来权重颜色。这里的速度是可以根据curve、random between two constant、random between two curve来决定的。
Collision碰撞有两种碰撞模式:面碰撞(plane)和世界范围内(world)的碰撞。当勾选了send collision message时,粒子碰到碰撞体时该粒子系统会向自身所在物体和被碰撞物体发送一次消息,调用OnParticleCollision事件。
planes可以指定碰撞的平面物体,在plane模式下,bounce可以控制粒子于平面碰撞之后反弹的力度,dampen控制粒子与碰撞面接触之后的速度丢失量(模拟碰撞之后失去原有能量的碰撞,或是碰撞平面是高粘度的材料什么的)。
World模式则和plane模式差不多,只要世界里有带碰撞体的物体它就能相撞,不用指定碰撞面。
lifetime loss表示碰撞之后的粒子会减少多少生命,0就代表剩下原有生命的100%,1代表碰撞之后立刻死去。Radius scale表示碰撞平面体的半径大小。
SubEmitters是一种粒子的繁衍模块,包括该粒子系统在出生、碰撞、死亡、触发时的事件,触发这些事件时会繁衍出另外一个新的粒子系统,并且这个新的粒子系统可以继承母粒子系统的一些属性和继续繁衍。
Start 3d xxx是根据粒子的xyz进行的操作。如果把start 3d size设为x大y小,那就可以得到一条细线。此时再将start rotation设为360~-360,就可以在屏幕上得到一个闪亮的光点。
Render里的min/max particle size控制的是根据摄像机和粒子之间的距离来用最小/最大值缩放粒子。如果粒子的位置不对,还可以用pivot来轴向移动,切勿移动整个粒子系统的位置。
Render中的order in layer越大,渲染顺序就越优先,如果设为-1,那么这个粒子系统发射的粒子将不再挡住比-1大的层级的粒子。