Unity 学习笔记-粒子系统

183 阅读2分钟

粒子

功能模块

image_LzLx5BO_wd.png

默认激活了发射模块形状模块渲染模块

Emission(发射)

Emission 模块 - Unity 手册

  • 发射方式三选一
属性功能
Rate over Time每个时间单位发射的粒子数。
Rate over Distance每个移动距离单位发射的粒子数。(边移动边发射)
Bursts爆发是指生成粒子的事件。通过这些设置可允许在指定时间发射粒子。(适用于爆炸场景,Looping通常不勾选)

Shape(发射器形状)

Cone
  • Emit fromVolume时(从整个锥体中发射),Length参数才会生效

Velocity over Lifetime(生命周期内速度)

  • Orbital X/Y/Z:轨道运动
  • Radial:离心力
  • 速度因子(Speed Modifier)
    • V = (Start Speed + Velocity over lifetime) * Speed Modifier

Force over Lifetime(受力)

  • 作用力(重力、浮力、风力、洋流推力)
  • Drag:摩擦系数,模拟介质阻力

Limit velocity over Lifetime(速度衰减)

  • 介质阻力。如水中发射,物体慢慢减速
  • Multiply by Size:粒子越大,阻力越大
  • Multiply by Velocity:速度越大,阻力越大

Noise(噪声)

  • 来自介质的扰动
  • Strength:强度
  • Frequency:频率

Rotation over Lifetime(角速度)

  • 注意并非角度

Trail(拖尾)

Texture Sheet Animation(位图粒子动画)

Lights(光源)

  • Ratio:带光源的粒子占的比例(0-1)
  • Use Particle Color:使用粒子的颜色作为光源颜色
  • Range / Intensity Multiplier:范围/强度因子
  • Max Lights:最大光源数

Sub Emitters(子发射器)

Collision(碰撞)

与平面碰撞
  • 想隐藏碰撞平面,将平面的Mesh Renderer禁用掉就行
  • Dampen:速度衰减(0-1)
  • Bounce:粒子碰撞时的弹力
  • Lifetime Loss:生命时长损失
与世界碰撞
  • Collides With:与指定层的对象碰撞
碰撞事件处理
  • 会调用一个事件函数OnParticleCollision
  • 步骤:
    • 给粒子对象添加脚本

    • 脚本添加OnParticleCollision函数

    • 粒子组件勾选Send Collisoin Message

      image_C8kgoXRLN4.png

渲染方式

Stretched Billboard(拉伸广告牌)

  • 想要实现发射效果,贴图的“头部”得向左

    gif-2024-12-10 at 22.28.37_SRgtypMBIM.gif

    image_DUB7itB9AS.png

    ⬆️所用贴图

  • Camera Scale:考虑摄像机的移动速度

  • Speed Scale:考虑粒子的运动速度(越快的粒子被拉伸得更长)

  • Length Scale:长宽比

  • 最终Scale = Length Scale + Speed Scale * Speed

Horizontal Billboard(水平广告牌)

空粒子

  • 父节点Emssion不激活,用作预览全部子粒子的效果