本文采用:unity2021.1.5f1c1 HDRP 渲染管线
# 开始
创建 HDRP 项目,并设置好相关配置。
搭建的场景如图所示:
# 🔸认识 VFX Graph
创建一个 VFX Graph 可以点击 Edit 进入编辑界面,其编辑界面和 ShaderGraph 类似。
# 🔹 编写 Graph
# 孵化器循环
针对于持续性和非持续性进行区分
# 初始化粒子
完成上述 2 个步骤时,效果如下,记得替换粒子的贴图
# 渲染粒子
通过渲染器设置,火花效果更好了
# 更新粒子 - 使用重力
现在我们的火花是直线发射的,我们想让其受到一个重力自动下垂。
在更新粒子模块,增加重力,设置一个随机数重力。
添加重力后,可以看到我们的粒子受重力而下垂。
# ❤️完善火花
# 发射形状
# Local 和 World 坐标
在布局坐标中,粒子效果不会残留,为了让我们的火花可以在世界中残留,需该为世界坐标系
# 添加碰撞
我们希望火花粒子能够和周围环境产生碰撞
# 碰撞框
添加如下碰撞框组件:
其中: LifeTime Loss为生命损失
发现我们的粒子在接触碰撞框时会被弹开。
# 碰撞事件
为了响应碰撞添加如下组件
其效果如下,每个粒子碰撞死亡后将生产 1 个蓝色粒子
# 完善和脚本控制
调整一下粒子,将循环关闭,使用脚本控制粒子。
public class VFXTest : MonoBehaviour | |
{ | |
public GameObject vfx; | |
private void Update() | |
{ | |
if (Input.GetKeyDown(KeyCode.A)) | |
{ | |
var go = Instantiate(vfx, transform.position, Quaternion.identity); | |
var vf = go.GetComponent<VisualEffect>(); | |
vf.Play(); | |
Destroy(go, 2f); | |
} | |
} | |
} |
其效果如下图所示,按下 A 自动生成一个特效