unity之粒子特效制作图片拼合文字效果

一、效果

二、 粒子效果制作

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);//再把更新过的粒子数据设置回去
		}
	}
}

场景布局:

猜你喜欢

转载自blog.csdn.net/qq_42345116/article/details/126196342