【Unity2D 2022:Particle System】添加命中粒子特效

embedded/2024/10/19 0:23:08/

一、创建粒子特效游戏物体

二、修改粒子系统属性

1. 基础属性

        (1)修改发射粒子持续时间(Duration)为1s

        (2)取消勾选循环(Looping)

        (3)修改粒子存在时间(Start Lifetime)为0.1~0.2之间的随机值

        (4)修改粒子初始速度(Start Speed)为0

        (5)修改粒子初始尺寸(Start Size)为0.7~1之间的随机值

        (6)修改粒子初始旋转角度(Start Rotation)为0~360之间的随机值

2. 发射器(Emission)

        (1)设置发射粒子速度(Rate over Time)为0(即不发射粒子)

        (2)添加爆发(Burst),Time为0,Count为5

3. 发射器形状(Shape)

        (1)设置形状(Shape)为Circle

        (2)设置旋转角度(Rotation)在x轴方向为900

        (3)设置半径为(Radius)0.12

        (4)设置模式(Mode)为Burst Spread(爆炸扩散)

4. 粒子颜色(Color over Lifetime)

        (1)设置透明度为255-0(即越来越透明)

5. 粒子尺寸(Size over Lifetime)

        (1)设置粒子尺寸为0.6-1

6. 粒子纹理动画(Texture Sheet Animation)

        (1)添加粒子精灵图片

三、创建命中特效预制体

四、子弹命中敌人时播放特效

1. 编辑子弹脚本:

        (1)创建命中特效预制体

public class Bullet : MonoBehaviour
{// 创建命中特效预制体public GameObject hitEffectParticlePrefab;
}

        (2)重写迭代器接口,延迟1s后删除命中粒子特效

public class Bullet : MonoBehaviour
{// 创建命中特效预制体public GameObject hitEffectParticlePrefab;// 在1s后删除粒子特效private async Task deleteEffectParticle(GameObject EffectParticle, float delay){// 等待1sawait Task.Delay(1000);// 删除粒子特效Destroy(EffectParticle);}
}

        (3)当命中敌人时,在子弹的位置创建一个命中粒子特效,在1s后删除

public class Bullet : MonoBehaviour
{// 创建命中特效预制体public GameObject hitEffectParticlePrefab;// 击中敌人private void OnCollisionEnter2D(Collision2D collision){Enemy enemy = collision.gameObject.GetComponent<Enemy>();if(enemy != null) {enemy.changeHealthPoint(-25);GameObject hitEffectParticle = Instantiate(hitEffectParticlePrefab, transform.position, Quaternion.identity);deleteHitEffectParticle(hitEffectParticle, 1);}Destroy(gameObject);}// 在1s后删除粒子特效public static async Task deleteEffectParticle(GameObject EffectParticle, float delay){// 等待1sawait Task.Delay(1000);// 删除粒子特效Destroy(EffectParticle);}
}

2. 为子弹预制体添加命中粒子特效

3. 最终效果如下图所示:

        本章完。感谢阅读!


http://www.ppmy.cn/embedded/58710.html

相关文章

SQLServer的系统数据库用别的服务器上的系统数据库替换后做跨服务器连接时出现凭证、非对称金钥或私密金钥的资料无效

出错作业背景&#xff1a; 公司的某个sqlserver服务器要做迁移&#xff0c;由于该sqlserver服务器上数据库很多&#xff0c;并且做了很多的job和维护计划&#xff0c;重新安装的sqlserver这些都是空的&#xff0c;于是就想到了把系统4个系统数据库进行替换&#xff0c;然后也把…

音频demo:使用faad2将AAC数据解码出PCM数据

1、README 前言 本demo是使用的开源项目faad2将aac数据解码成pcm数据。 a. 编译使用 faad2的编译&#xff1a;(faad2下载地址&#xff1a;https://sourceforge.net/projects/faac/files/faad2-src/faad2-2.8.0/) tar xzf faad2-2.8.8.tar.gz cd faad2-2.8.8/ ./configure …

加密与安全_密钥体系的三个核心目标之完整性解决方案

文章目录 Pre机密性完整性1. 哈希函数&#xff08;Hash Function&#xff09;定义特征常见算法应用散列函数常用场景散列函数无法解决的问题 2. 消息认证码&#xff08;MAC&#xff09;概述定义常见算法工作原理如何使用 MACMAC 的问题 不可否认性数字签名&#xff08;Digital …

如何在 PostgreSQL 中实现数据的去重操作,尤其是对于复杂的数据结构?

文章目录 一、基本数据类型的去重二、多列数据的去重三、复杂数据结构的去重&#xff08;一&#xff09;数组类型的去重&#xff08;二&#xff09;JSON 类型的去重&#xff08;三&#xff09;结构体类型&#xff08;复合类型&#xff09;的去重 四、使用 GROUP BY 进行去重五、…

Java面试题系列 - 第7天

题目&#xff1a;Java中的反射机制及其应用场景 背景说明&#xff1a;Java的反射机制允许运行时检查类的信息和动态调用方法&#xff0c;这在很多框架和库中被广泛使用&#xff0c;例如Spring框架的依赖注入、JDBC的数据库连接、以及各种ORM框架等。理解反射机制对于深入学习J…

Android EditText+ListPopupWindow实现可编辑的下拉列表

Android EditTextListPopupWindow实现可编辑的下拉列表 &#x1f4d6;1. 可编辑的下拉列表✅步骤一&#xff1a;准备视图✅步骤二&#xff1a;封装显示方法✅步骤三&#xff1a;获取视图并监听 &#x1f4d6;2. 扩展上下箭头✅步骤一&#xff1a;准备上下箭头icon图标✅步骤二&…

【MindSpore学习打卡】应用实践-LLM原理和实践-基于MindSpore实现BERT对话情绪识别

在当今的自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;情绪识别是一个非常重要的应用场景。无论是在智能客服、社交媒体分析&#xff0c;还是在情感计算领域&#xff0c;准确地识别用户的情绪都能够极大地提升用户体验和系统的智能化水平。BERT&#xff08;Bidirec…

Windows右键没有新建Word、PPT与Excel的解决方法

本文介绍在Windows电脑中&#xff0c;右键与资源管理器的“新建”选项中&#xff0c;都没有新建Word、PPT或Excel文件的解决方法。 最近&#xff0c;发现一台重装了系统与Office的电脑中&#xff0c;无论是桌面上与资源管理器中的右键&#xff0c;还是资源管理器左侧顶部的“新…