首页 > 代码库 > 粒子系统(一)
粒子系统(一)
一、初识粒子系统
1、主模块
● Duration: 持续时间。即把循环关了以后,持续多少秒停止发射粒子
● Looping: 循环
● Prewarm: 预热。粒子系统在游戏开始前就开始计算
● Start Delay: 延迟。即延迟多少秒开始发射粒子
● Start Lifetime: 初始化粒子寿命(生命周期)
? Constant: 常数
? Curve: 曲线
? Random Between Two Constants: 两个常数之间的随机数
? Random Between Two Curves: 两条曲线之间的随机数
● Start Speed : 初始化粒子速度
● 3D Start Size : 3D初始化大小(可以对X、Y、Z进行调节)
● Start Size : 初始化大小
● 3D Start Rotation: 3D初始化旋转
● Start Rotation: 初始化旋转
● Randomize Rotation: 随机旋转
● Start Color:初始化颜色
● Gravity Modifier: 重力
● Simulation space: 粒子随本地坐标还是世界坐标移动
● Simulation Speed: 粒子速度(可以改变粒子的速度,粒子的移动距离却不会改变。与“Start Speed”不同,初始化速度越快能移动的距离越远)
● Scaling Mode:
● Play On Awake: 运行时唤醒
● Max Particles: 最大粒子数
● Auto Random Seed:
2、Emission(发射器)
● Rate over Time: 每秒发射粒子个数
● Rate over Distance: 粒子系统移动时,单位距离内发射的个数(“Simulation space”必须设置为世界坐标)
● Bursts: 爆发(爆炸效果),在给定时间点瞬间爆发给定的粒子个数
3、Shape (形状)
● Shape : 发射器模型
? Cone : 圆锥
? Mesh: 导入从系统内部提供的模型发射粒子
? Mesh Renderer: 从游戏世界中选择任意的模型发射粒子
? Skinned Mesh Renderer:
● Angle: 角度
● Radius: 半径
● Emit from: 从哪发射(以圆锥为例)
? Base: 从圆锥的底面发射;
? Base Shel: 从圆锥的底边发射;
? Volume: 从圆锥体空间随机发射;
? Volume Shel: 从圆锥侧面
● Align To Direction:对齐到方向
● Randomize Direction: 随机方向
● Spherize Direction: 球面方向
3、Velocity over Lifetime
调节粒子在x、y、z方向的速度
4、Limit Velocity over Lifetime
● Separate Axes: 设置不同坐标轴的速度
● Speed: 速度限制
● Dampen: 当粒子速度超过限制速度时,粒子的速度将会减少(0的时候不衰减)
5、Inherit Velocity (随时间粒子如何继承速度)
● Mode:
? Initial: 使用固定数值
? Current:当前的
● Multiplier: 百分比
6、Force over Lifetime
在某一个方向上施加力
7、Color over Lifetime
颜色随生命周期的变化
上面调节透明度,下面调节颜色
8、Color by Speed
颜色的随粒子速度的变化而变化
9、Size over Lifetime
粒子大小随生命周期变化
10、Size by Speed
粒子大小随粒子速度的变化而变化
11、Rotation over Liferime
旋转随粒子生命周期变化
12、Rotation by Speed
旋转随粒子的速度变化
13、External Forces(外力)
14、Noise(扰乱场)
● Separate Axes: 定义方向
● Strength: 速度
● Frequency: 生成频率图
● Scroll Speed: 动态生成频率图
● Damping: 阻尼
● Octaves: 幅度
● Quality: 质量
15、Collision
● Collision: 碰撞
? Planes: 附加游戏世界中的物体将会产生一个面片
? world:与游戏世界中的物体产生碰撞
● Visualization: 面片类型
● Scale Plane: 面的大小
● Bounce: 吸附,使粒子沿着面运动
● Lifetime Loss: 粒子碰撞时亏损
● Min Kill Speed: 最小死亡速度
● Max Kill Speed: 最大死亡速度
● Radius Scale: 偏移,可使粒子未撞到Collision便产生碰撞
16、Triggers
触发处理方式:
? Ignore: 忽略
? Kill: 杀死
? Callback: 回调
● Inside: 在····之内
● Outside: 在外面
● Enter: 进入
● Exit: 离开
● Radius Scale: 触发半径大小。大于1时,则未接触就已触发
17、Sub Emitters
注:添加子粒子系统的时候需要点击右上角白色加号添加(在5.5.2版本中发现另外创建的粒子系统无法在Collision、Death中应用)
● Birth: 诞生 一个粒子系统
● Collision: 碰撞。当粒子碰撞的时候会不会产生下一个粒子系统
● Death: 死亡。死亡时产生一个粒子系统
● Inherit: 继承
18、Texture Sheet Animation(动画贴图)
● Tiles : 对应序列图的X轴和Y轴
● Animation:
?Whole Sheet: 整个贴图
?Single Row: 单行。(如下图表示播放第一行动画)
● Frame over Time: 一条曲线用于指定动画的帧是如何随着时间的推移增加的
● Start Frame: 初始化帧
● Cycles: 在粒子的生命周期中,动画序列循环的次数
● Flip U/V:
● Enabled UV Channels: 允许你指定正确的UV流
19、Lights
20、Renderer(渲染器)
● Render Mode:渲染模型
? Billboard: 公告板模式,面对摄像机渲染
? Stretched Billboard: 面对摄像机但沿着方向拉伸
? Horizontal Billboard: 粒子平面平行于xz平面“地板”
? Vertical billboard: 锁定轴向,从顶视图往下看的时候将无法看到粒子
? Mesh: 网格
● Normal Direction: 法线方向。1的话指向摄像机方向,0的话指向粒子的角落方向
● Material: 材质
● Sort Mode: 优先级(优先渲染)
● Sorting Fudge: 按数值优先渲染。(值越小越被优先渲染,一般意义两个粒子系统叠加的情况)
● Min/Max Particle Size: 摄像机拉近拉远时粒子跟着变大变小时调节这个
● Pivot: 发射的粒子与粒子系统的相对位置
● Cast Shadows : 投射阴影开关
● Receive Shadows: 接收阴影开关
● Sorting Layer: 渲染器的分类层的名称
●
二、用代码控制简单的播放
/// <summary> /// 将脚本绑定到含有粒子系统的组件即可 /// </summary> public class particle : MonoBehaviour { private ParticleSystem _particle; private void Awake() { _particle = GetComponent<ParticleSystem>(); } //播放粒子系统 private void Update() { if (Input.GetKeyDown(KeyCode.Mouse0)) { //播放 _particle.Play(); } if (Input.GetKeyDown(KeyCode.Mouse1)) { //暂停 _particle.Pause(); } if (Input.GetKeyDown(KeyCode.Space)) { //停止 _particle.Stop(); } } }
粒子系统(一)