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

场景布局:

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值