900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > unity之粒子特效制作图片拼合文字效果

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

时间:2023-04-16 20:18:31

相关推荐

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

场景布局:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。