
创建粒子特效

将相机位置和粒子特效位置调整到0点,并且调整粒子发射的角度方向是朝向相机的
相机位置调整

粒子特效位置调整

调整完后的效果

将发射的粒子调整为发射图片
图片素材

将图片素材导入到unity中,

调整发射的粒子图片

粒子效果变成了喷射图片

经过上面的操作每个粒子将我们的12张图片组合成一张进行发射的,我们接下来就要裁剪每一张图片,来实现随机一张图片粒子的发射

tiles:几行几列
Frame over time,每张贴图的存在时间
现在的效果

改变粒子的速度、大小、发射数量来让每个粒子以点成线,线成面的原理组合成一个面

其中调整粒子大小选项操作,点击右侧下拉三角,选择第三个选项即可

现在的效果

这一步就是为了让发射的粒子贴合到文字图片上。
文字素材

将文字素材拖入unity


现在的效果,这时候粒子已经贴合文字展示了,但是图片太大效果太差


现在的效果

到这里我们粒子图片拼合文字效果就出来了,但是要是想实现移动的效果则需要使用脚本控制了
将此脚本挂在粒子特效上即可
- 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
(); - 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);//再把更新过的粒子数据设置回去
- }
- }
- }
场景布局:
