17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾

1. 粒子朝向(Stretched Billboard的使用)

一般创建的粒子系统,在Renderer模块里默认选择的Render ModeBillboard,但是此模式下粒子的朝向总是向上的,有时希望粒子贴图头部的方向和粒子刚产生时的发射方向保持一致,此时可以使用拉伸广告牌Stretched Billboard模式,并将其拉伸比例(长宽比)属性Length Scale设置为1,如下图所示:
17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾_第1张图片
相关属性

Camera Scale : 考虑摄像机的移动速度
Speed Scale : 考虑粒子的运动速度
Length Scale :长宽比
同时需要将粒子贴图的头部方向设置为朝左,此时粒子的飞行方向就和粒子贴图的头部指向保持一致了。

1.1 爆炸特效

模拟烟花爆炸时,粒子爆炸后在自己的飞行方向,视觉上看着粒子的长度是有一定的拉伸,就像看烟花时,烟花爆炸后看着每一个烟花粒子都会有个长条条的效果,这种特效可以使用上面的Speed Scale属性来实现,一般这个值设置的很小,根据需要进行调整。
效果展示

烟花爆炸效果

2. 水平广告牌(Horizontal Billboard)

这种渲染模式生成的粒子都是水平放置的,一般可以用来制作在水平地面旋转物体的特效

2.1 传送地标特效

在制作时需要设置一些参数,因为做的是单独的旋转效果,所以并不需要粒子发生器的形状,将Shape模块取消,同时设置主模块中的Start Speed属性为0,只需要添加一个旋转模块,让粒子以一定的角速度绕着某一个坐标轴旋转,一般设置加速度为45度每秒,并在主模块中设置每个粒子的存活时间Start Lifetime为8秒,在Emission模块中设置Rate over Time为0.125,即每秒钟产生的个数,这样8秒内旋转一圈产生一个粒子,然后循环往复,就会达到始终只有一个粒子在视图中出现,尺寸大小可以在主模块中的Start Size中设置,如果想在启动时立刻产生粒子特效,可以在主模块中打开Prewarm属性,起到预热效果
效果展示

传送法阵

3. 灯光模块(Lights)

为粒子系统添加灯光模块,可以让每一个粒子自带发光特效,并且灯光会随着粒子运动
相关属性
Light:指定点光源(可以自己在场景中创建一个点光源,然后拖放到相应属性内)
Ratio:比例(0.1表示总粒子个数当中有10

粒子灯光效果

4. 粒子系统组合

复杂的粒子特效是需要多种粒子系统组合在一起才能实现的,此时就像在场景中创建子节点和父节点一样,一个粒子系统节点下面也可以挂载多个粒子系统子节点,播放时会同时播放所有的粒子特效,如果不知道使用哪一个粒子系统作为父节点,可以创建一个粒子系统然后将这个粒子系统的Emission模块取消,即当作是一个空粒子系统,来当作整个粒子系统的父节点进行管理。

4.1 粒子系统组合—爆炸效果

爆炸效果

5. 二级发射器模块(Sub Emitters)

二级发射就是在第一个粒子系统产生的粒子消亡后,二级粒子系统会在一级粒子消亡的地方触发,就像烟花先是一个火球发射到空中,然后火球爆炸后产生很多烟花粒子,这里的火球就相当于是一级粒子系统产生的粒子,爆炸后产生的很多烟花粒子就相当于是二级系统产生的粒子。
在模块Sub Emitters中设置属性二级发射器的执行时间为Death:即一级粒子消亡时执行,其中属性Emit Probability可以指定二级系统执行的概率,1 表示百分百全部执行,如下图所示:
注意:二级发射器的粒子系统,其粒子发射应该使用爆发式发射,可在Emission模块中进行设置。
注意:二级发射器的执行时间如果选择了Birth,那么其Emission发射器可以为任何类型,如果执行时间选择了其它的类型,则Emission发射器必须为爆发式类型
属性Inherit可以指定二级粒子继承一级粒子的某种属性,比如颜色属性等。
17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾_第2张图片
效果展示

粒子特效--二级发射器

6. 粒子碰撞(Collision模块)

相关参数:
type属性:有两种类型,一种Plane是检测与目标平面之间的碰撞;另一种是World,检测与世界中物体之间的碰撞
Plane类型参数:
Planes:指定碰撞平面所在位置
Dampen:速度的衰减,0不衰减 1表示100%衰减
Bounce:粒子在碰撞时弹跳的力度
Lifetime Loss:生命时长的损失
17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾_第3张图片
World类型:
注意在World类型中指定了碰撞检测的世界物体后,这个物体必须包含碰撞体模块,否则无法达到效果
17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾_第4张图片

6.1 粒子碰撞事件(OnParticleCollision)

当粒子系统中发射的粒子挂载了碰撞模块Collision后,粒子发生碰撞是可以传递一个事件进行响应的,此时需要打开碰撞模块的Send Collision Messages属性,如下图:
17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾_第5张图片
打开后即可为粒子系统节点挂载一个脚本,在其中写入如下代码即可:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ParticleScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    //响应粒子碰撞事件
    private void OnParticleCollision(GameObject other)
    {
        //参数 other 指的是被撞击的物体
        Debug.Log("粒子间发生了碰撞....");
        
    }
}

7. 粒子拖尾(Trail模块)

在粒子系统中可以给每一个粒子添加一个小尾巴的特效,这个是使用Trail模块实现的,如下图所示:其中的属性Inherit Particle Color比较常用,用于指定拖尾的颜色继承自每个粒子本身的颜色,Ratio属性用于指定粒子携带拖尾的比例。
17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾_第6张图片
添加这个模块之后,需要为其添加一个材质,这个是在粒子系统中的Renderer中添加的,如下图所示:
17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾_第7张图片
添加拖尾后的效果:

拖尾效果

你可能感兴趣的:(Unity,unity)