粒子系统-常用子模块

该文章详细介绍了Unity3D中的粒子系统,包括发射模块(Emission)如匀速发射和爆发式发射,形状(Shape)如锥形,运动(VelocityoverLifetime)模块,以及碰撞(Collision)、二级发射器(SubEmitters)、灯光(Lights)和渲染(Renderer)等设置,展示了如何创建和控制粒子效果。
摘要由CSDN通过智能技术生成

目录

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);
}

 6fe33514eb441bb1c6b0fd838fd7c995.png

在Collision中勾选Send Collision Messages,然后启动游戏,就可以在控制台看到打印,碰撞物体:平面

Sub Emitters (二级发射器)

下面规定在一级粒子死亡时发射二级粒子。

Inherit 二级粒子继承一级粒子的属性,继承的属性可以选择如下方式

Emit Probability [0,1] 表示一级粒子爆发二级粒子的概率,此处1表示100%,即每个一级粒子都能爆发二级粒子。

构建出如下父子节点的粒子,当父粒子死亡时,二级粒子爆发。

当发射类型为非Birth时,二级粒子必须设置为爆发式发射。

 cb5f674f0142564c9c6886aab9e1d0f1.png

 

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值