当前位置: 首页 > news >正文

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

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

二、修改粒子系统属性

1. 基础属性

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

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

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

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

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

        (5)修改粒子初始旋转角度(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 IEnumerator deleteHitEffectParticle(GameObject hitEffectParticle, float delay){yield return new WaitForSeconds(delay);Destroy(hitEffectParticle);}
}

        (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后删除命中粒子特效private IEnumerator deleteHitEffectParticle(GameObject hitEffectParticle, float delay){yield return new WaitForSeconds(delay);Destroy(hitEffectParticle);}
}

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

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

 

        本章完。感谢阅读!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • React 中 useEffect
  • JAVA每日作业day7.4
  • 软件是什么?一个软件到底是哪些部分组成的-软件到底有哪些分支呢?
  • Synchronized、volatile与ReentrantLock:Java并发编程中的同步机制比较
  • docker部署mycat,连接上面一篇的一主二从mysql
  • Windows ipconfig命令详解,Windows查看IP地址信息
  • Go 语言入门(一)
  • 策略模式的应用
  • 代码随想录——划分字母区间(Leetcode763)
  • 万界星空科技MES系统中的排版排产功能
  • 刷代码随想录有感(127):动态规划——判断是否为子序列
  • python ui 工作流完善功能
  • HTTP 常见状态码
  • STM32F1+HAL库+FreeTOTS学习2——STM32移植FreeRTOS
  • 详解前缀码与前缀编码
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【面试系列】之二:关于js原型
  • exports和module.exports
  • flutter的key在widget list的作用以及必要性
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JSONP原理
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • SpiderData 2019年2月16日 DApp数据排行榜
  • vuex 笔记整理
  • Vue官网教程学习过程中值得记录的一些事情
  • vue总结
  • Web标准制定过程
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 阿里云Kubernetes容器服务上体验Knative
  • 基于HAProxy的高性能缓存服务器nuster
  • 基于遗传算法的优化问题求解
  • 如何选择开源的机器学习框架?
  • 什么软件可以剪辑音乐?
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 因为阿里,他们成了“杭漂”
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​低代码平台的核心价值与优势
  • #565. 查找之大编号
  • (02)vite环境变量配置
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (区间dp) (经典例题) 石子合并
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一)Dubbo快速入门、介绍、使用
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转载)Linux网络编程入门
  • .“空心村”成因分析及解决对策122344
  • .gitignore
  • .Net 6.0--通用帮助类--FileHelper
  • .NET CLR基本术语
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET Micro Framework初体验
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .net和jar包windows服务部署