一、效果
二、 粒子效果制作
1.相机粒子位置调整
创建粒子特效
将相机位置和粒子特效位置调整到0点,并且调整粒子发射的角度方向是朝向相机的
相机位置调整
粒子特效位置调整
调整完后的效果
2.发射图片粒子
将发射的粒子调整为发射图片
图片素材
将图片素材导入到unity中,
调整发射的粒子图片
粒子效果变成了喷射图片
3.裁剪图片
经过上面的操作每个粒子将我们的12张图片组合成一张进行发射的,我们接下来就要裁剪每一张图片,来实现随机一张图片粒子的发射
tiles:几行几列
Frame over time,每张贴图的存在时间
现在的效果
4.粒子发射速度大小调整
改变粒子的速度、大小、发射数量来让每个粒子以点成线,线成面的原理组合成一个面
其中调整粒子大小选项操作,点击右侧下拉三角,选择第三个选项即可
现在的效果
5. 设置发射器为文字图片
这一步就是为了让发射的粒子贴合到文字图片上。
文字素材
将文字素材拖入unity
现在的效果,这时候粒子已经贴合文字展示了,但是图片太大效果太差
6.根据生命周期调整粒子大小
现在的效果
到这里我们粒子图片拼合文字效果就出来了,但是要是想实现移动的效果则需要使用脚本控制了
三、脚本控制粒子移动
将此脚本挂在粒子特效上即可
using System.Collections;using System.Collections.Generic;using UnityEngine;[RequireComponent(typeof(ParticleSystem))]public class ParMove : MonoBehaviour{ParticleSystem par; //粒子系统ParticleSystem.Particle[] arrPar; //粒子释放的最大粒子数数组。int arrCount = 0; public Transform target;//指向要移动的目的public float speed = 0.1f;void Awake(){par = GetComponent<ParticleSystem>();arrPar = new ParticleSystem.Particle[par.main.maxParticles];}void Update(){if (par && par.isPlaying&& arrCount<= par.main.maxParticles){arrCount = par.GetParticles(arrPar);//获取到当前激活的粒子for (var i = 0; i < arrCount; i++){Vector3 pos = new Vector3(arrPar[i].position.x, arrPar[i].position.y, target.position.z);arrPar[i].position = Vector3.Lerp(arrPar[i].position, pos, speed);//设置他们的位置}par.SetParticles(arrPar, arrCount);//再把更新过的粒子数据设置回去}}}
场景布局: