美文网首页
unity学习 粒子系统

unity学习 粒子系统

作者: qiaoqiao123 | 来源:发表于2019-04-09 09:20 被阅读0次

    粒子系统由粒子发射器、粒子动画器和粒子渲染器三部分组成,主要用于游戏场景中一些特殊效果,如水、烟火等等。

    unity的asset里面自带一些粒子效果,包括:Dust(沙尘)、Fire(火焰)、Water(水)、Smoke(烟雾)、Sparkles(闪光),还有一些粒子资源 Sources、Misc(杂项)。

    unity中particle system的inspector窗口属性


    unity particle system attribute

    Emission发射器参数 详解

    Duration:粒子持续时间
    prewarm:预热粒子发射在Looping打钩的情况下才能使用
    start lifetime:开始粒子的生命周期 具有不同的选择 如random curve constant 
    start speed size rotation color :开始速度……
    Gravity Multiplier:重力影响的值
    Inherit Velocity:继承速度
    Simulation Space :发射坐标
    PlayOnAwake : 是否在激活就播放
    Max Particles : 最多粒子数:rate bursts(粒子集) 在不同时刻发射多少粒子
    

    Shape 参数主要是约束粒子发射的形状,比如火焰当然得用Cone锥形,然后夜明珠就得用Sphere球体。

    Shape:发射形状 sphere hemisphere cone(锥形) box mesh
    #Cone:椎体
    Angle:锥形斜面和垂直方向的夹角
    Radius:锥形底面的半径
    Length:底面和顶面的距离
    Emit form:从哪里发射:总共有4种:Base:圆锥底面;BaseShell:圆锥底面周长边;Volume:体积。粒子是从圆锥体内的任意位置沿着体积的方向发射出去。VolumeShell:体积侧面。粒子是从圆锥体的侧面的任意位置沿着侧面方向发射出去的。
    
    #box
    Box X:x方向上的长度。
    Box Y: y方向上的长度。
    Box Z:z方向上的长度。 default
    
    # mesh
    Vertex:粒子就是从网格的顶点发射出去。
    Edge:粒子是从网格的边长发射出去。
    Triangle:粒子从网格的面发射出去。
    

    Velocity over Lifetime 速度受粒子的生命周期影响
    有两个参数:速度值和space 默认值为local,是否受到父类的影响;Simulation Space的参数影响。

    Limit Velocity over Lifetime

    限制粒子速度

    Separate Axis:是否限制3个方向的速度。当我们打钩之后,会有x,y,z三个方向的速度限制。
    Speed:总体限制的速度。
    Dampen:速度限制倍数。
    

    Force over Lifetime

    粒子在不同方向受力,改变粒子不同方向上的加速度;主要应用场景很多,比如喷泉,我们在z方向施加往下的力,类似的场景很多,凡是跟重力相关的都可以用上。

    Color over Lifetime:粒子颜色随着生命周期的改变而改变
    Color by Speed:粒子颜色随着速度的变化而变化
    Rotation over Lifetime: 粒子旋转方向随着生命周期而变化
    Rotation by Speed : 粒子旋转方向随着速度而变化
    #External Forces
    

    Collision

    粒子碰撞效果,用来处理粒子与其他碰撞器之间的碰撞检测

    unity3d particle system collision section
    Planes Or World :
    第一个参数是其他碰撞体类型
      Planes 
      Visualization : 可视化类型,有分Grid(网格,在编辑过程中可以看见具体的碰撞器边界)和Solid(实体 没有边界,但是他的实体就是边界,没啥差别)
      Scale Plane :面的缩放大小,也就是碰撞器的缩放大小
      Dampen : 碰撞器表面的摩擦力大小。如果大于0的话,表明粒子碰到碰撞器后速度会减少。 
      Bounce : 弹力。默认为1,如果为0的话,表示不能反弹,那么就只能沿着碰撞器表面滑行。
      Lifetime Loss : 碰撞之后粒子生命周期减少
      Min Kill Speed : 粒子碰撞后如果速度小于这个速度的粒子会销毁。
      Particle Radius : 粒子半径
    
     World :可以选择在世界坐标下所有的碰撞的layer来剔除。在参数中多了个Collides With,这里选择我们需要的layer。
    
    

    Sub Emitters

    自粒子发射器;有三个阶段

    1.Birth(本粒子出生的时候,那么子粒子会跟着本粒子出生)
    2.Collision(本粒子碰撞的时候,会产生子粒子)
    3.Death(本粒子死亡的时候,会产生子粒子)
    

    解释道:

    这里注意所谓粒子是单个粒子,不是整个Particle System。可能读者会误以为整个本体Particle死亡的时候才产生粒子,这里是个误区,其实是Particle的单个小粒子。
    比如我在出生的搞个子粒子。那么每发射一个小粒子,会持续产生子粒子,注意持续。因为我没有在本体粒子Death处理任何事,也就是说本体粒子没有消亡之前,一直会产生子粒子。

    Texture Sheet Animation

    序列帧动画,这个组件得配合下面的Renderer组件的材质球。因为我们的序列帧图片是从这里获取的。

    unity3d particle system texture sheet animation
    1.Tiles : UV坐标 可以理解为xy分别表示把整张图切成几块,比如x等1,y等2,表示整张图,x部分整张,y部分被切成两块,这样就表示整张图被切成上下两个部分,这样帧动画就拿着两个部分循环替换出现,如果x等2,y等2,那么就整张图被切成四块,帧动画取四块交替
    2.Animation : 表示去哪个部分做帧动画
      Whole Sheet:表示整张图,根据上面的UV
      Single Row:单行  
    3.Frame over Time : 在粒子生命周期里面,播放第几帧的图片
    4. Cycle : 在生命周期内循环播放次数,基本上为1
    

    Renderer

    渲染组件,就是渲染粒子的材质球

    1.Renderer Mode : 渲染模式
        Billboard 渲染出来的粒子永远朝向摄像机,也就是说摄像机无论在哪个角度,他都是表现材质球的正面。
        Stretched Billboard 渲染出来的粒子可以进行缩放,但是没有正面朝向摄像机。什么叫正面,就是说他原先发射的粒子什么方向就是什么方向。
        Horizontal Billboard 渲染出来的粒子都是水平朝向
        Vertical Billboard 渲染出来的粒子都是竖直朝向
        Mesh 渲染出来的粒子的Mesh。注意这个会和Texture Sheet Animation发生冲突。也就是说规定了粒子的mesh之后就不会有帧动画产生。
    

    相关文章

      网友评论

          本文标题:unity学习 粒子系统

          本文链接:https://www.haomeiwen.com/subject/ovkpiqtx.html