目录
Emission (发射)
Shape (形状)
Cone (锥形)
Velocity over Lifetime (运动)
Limit Velocity over Lifetime (速度限制)
Force over lifetime (受力)
Color over Lifetime
Size over Lifetime
Rotation over Lifetime
Noise (扰动)
Collision (碰撞)
碰撞事件
Sub Emitters (二级发射器)
Lights (灯光)
Trails (拖尾)
Renderer (渲染)
Render Mode
Stretched Billboard (拉伸广告牌)
Horizontal Billboard (水平广告牌)
Material
粒子组合
二级发射器
Emission (发射)
粒子发射模块,控制粒子的发射情况。
匀速发射
Rate over Time 每秒钟发射N个粒子
Rate over Distance 每前进一米发射N个粒子,针对的是运动中的粒子系统。
爆发式发射
Bursts
Time 爆炸延迟的时间,即延迟多久后开始爆炸,delayTime
Count 爆发出多少粒子
Cycles 爆炸次数
Interval 爆炸间隔
Probabillity 爆炸可能的概率,0 表示不会爆炸
Shape (形状)
粒子发射器形状
Cone (锥形)
Angle 角度
Radius 底半径
Radius Thickness 半径厚度(壁厚)
Length 长度(高度)
Emit from Base 从底部发射 Volumn 体积内发射(体积内发射可以修改length属性)
Velocity over Lifetime (运动)
粒子速度渐变模块。
Linear 直线速度
Space 使用本地还是世界坐标系
Orbital 轨道速度
Offset 中心偏移
Radial 离心速度
Speed Modifier 速度修改
粒子速度 = (Start Speed + Linear) * Speed Modifier
Start Speed 指定的是 Z轴方向的速度
Limit Velocity over Lifetime (速度限制)
Drag 是摩擦系数,模拟阻力,
Multiply by Size 表示粒子越大,阻力越大
Multiply by Velocity 粒子速度越大,阻力越大
Force over lifetime (受力)
控制粒子在x,y,z方向上受到的力,
Space可以选择Local和World坐标系。
Color over Lifetime
颜色渐变,随着时间的改变,粒子的颜色,透明度逐渐改变。
选择上面的点,就是设置透明度,下面的点就是设置颜色。
上下分别最多可以添加8个点。
粒子颜色 = Start Color * 渐变颜色 ; rgba的数值相乘。
Size over Lifetime
同 Color over LifeTime原理,随着时间改变,粒子的大小改变。
Rotation over Lifetime
随着时间推移,粒子旋转。
Angular Velocity 角速度,此处表示粒子每秒旋转45度。
Separate Axes 用于控制x,y,z的角速度
Noise (扰动)
表示阻碍粒子正常运行,比如空气,水等扰动粒子的效果。
Strength 扰动强度,表示当扰动粒子时,粒子受到的力有多大
Frequency 扰动频率,表示多长时间扰动一次粒子
Collision (碰撞)
下图是与世界中物体碰撞
Type 碰撞类型,此处是World,也可以与平面碰撞。
Dampen 速度的衰减,0不衰减,表示粒子碰撞到物体后速度衰减多少,百分比值
Bounce 粒子在碰撞时弹跳力度
Lifetime Loss 碰撞损失的生命时长,百分比值
Collides With 碰撞物体
Type:World时,碰撞的物体需要有Collider
上图可以看到两种Type的区别,当指定为Planes时,粒子碰撞到平面后,即使这个平面不存在了,当粒子下落到平面所处平面时还是会发生碰撞,而World就仅仅只是碰撞一次。
碰撞事件
创建一个脚本,挂载到粒子系统下,在脚本中增加粒子碰撞检测事件,
private void OnParticleCollision(GameObject other)
{
Debug.Log("碰撞物体:" + other.name);
}
在Collision中勾选Send Collision Messages,然后启动游戏,就可以在控制台看到打印,碰撞物体:平面
Sub Emitters (二级发射器)
下面规定在一级粒子死亡时发射二级粒子。
Inherit 二级粒子继承一级粒子的属性,继承的属性可以选择如下方式
Emit Probability [0,1] 表示一级粒子爆发二级粒子的概率,此处1表示100%,即每个一级粒子都能爆发二级粒子。
构建出如下父子节点的粒子,当父粒子死亡时,二级粒子爆发。
当发射类型为非Birth时,二级粒子必须设置为爆发式发射。
Lights (灯光)
设置粒子的光源效果,需要一个光源。
Ratio 粒子拥有光源的比例,比如此处是20%的粒子会拥有一个光源,其他粒子就是不发光。
Use Particle Color 使用粒子的颜色作为光源的颜色。
Range Multipler 范围因子,确定光源范围
Intensity Multiplier 强度因子,确定光源的强度
Maximum Lights 光源最大数量
范围因子和强度因子都是用来改变光源的数值,
注意:设置了两个Plane作为地面和墙面,这样灯光效果才能看见,否则是看不见灯光的。
Trails (拖尾)
Ratio 粒子的拖尾概率,此处是100%,即每个粒子都会有拖尾效果
Inherit Particle Color 继承粒子的颜色
Width over Trail 拖尾宽度变化
Color over Trail 拖尾颜色变化
拖尾的材质可以在Renderer的Trail Material 中指定。
黄色粒子尾部被拉长的爱心就是拖尾的效果,
Renderer (渲染)
用于粒子渲染形状。
Render Mode
渲染模式,默认是Billboard(广告牌模式),
广告牌模式: 粒子总是正面面向摄像机。
Stretched Billboard (拉伸广告牌)
Stretched Billboard是拉伸广告牌模式,
Camera Scale 相机运动导致拉伸
Speed Scale 速度导致的拉伸
Length Scale 长度上拉伸
Scale = Length Scale + Speed Scale * Speed
将爱心的尖头朝左,那么在发射的时候就可以将尖头作为头部发射,如下所示,
发射器是一个球形发射器,向四面八方发射爱心,此时尖头所指就是发射朝向的路径
Horizontal Billboard (水平广告牌)
让粒子发射时水平的,会导致从正面看粒子能看见,背面就无法看见,可以在材质处勾选Two Sided,让从背面也可以看见。
Material
改变粒子的形状,只需要新建一个材质,然后在renderer模块替换默认材质即可。
如果材质有颜色,那么也会替换粒子的颜色。
创建材质
如果指定了材质的图片,那么就需要在材质里修改着色器,
Rendering mode 渲染模式,下面 Additive是渲染叠加模式,
一般图片使用黑色底或者透明色图片
粒子组合
粒子系统也可以通过形成父子关系来同时运行多个粒子系统。
二级发射器
本文中Sub Emitter