ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UnityParticle1:粒子系统简介

2021-04-03 19:33:15  阅读:278  来源: 互联网

标签:粒子系统 生命周期 粒子 简介 UnityParticle1 模块 速度 属性


 

前置:UnityShader

一、创建粒子

创建方式:GameObject -> Effects -> ParticleSystems,这和创建 3D 物体方法一样,就是分类选择 Effects 就好

粒子系统这特殊又复杂的 Inspector 界面初看感觉很吓人,这是因为粒子的属性实在是太多了,因此不得不将它们分为一个一个模块,模块左边复选框上的勾勾就表示启用该模块,一般来讲,最常用的就是 Emission & Shape 和 Renderer

当然对于模块的了解可以放放,后面有机会用到时再看也不迟

粒子特效预览界面

从上到下依次为:

  • Playback Speed:粒子模拟整体速度
  • Playback Time:时间线,也就是自粒子系统启动以来所经过的时间,如果 PlaybackSpeed 被修改,那么时间流逝也会同步变快和变慢
  • Particle Count:当前选中的粒子系统中有多少粒子
  • Speed Range:当前选中的粒子系统的粒子速度范围,和模块属性对应,需要在模块中调节
  • Simulate Layers:Scene 视图中是否预览未选定的粒子系统,默认情况下只有选定的粒子系统才能在 Scene 视图中播放。但若将 Simulate Layers 设置为 Nothing 以外的任何其他选项时,与 Layer Mask 匹配的效果就会自动播放,无需选择它们
  • Resimulate:启用此属性后,粒子系统会立即将属性更改应用于已生成的粒子,禁用此属性后,粒子系统会按原样保留现有粒子,仅将属性更改应用于新粒子
  • Show Bounds:显示选定粒子系统的包围体积
  • Show Only Selected:启用此属性后,Unity 将只显示你当前选中的粒子系统
Unity默认粒子特效

注意粒子和粒子系统的区别

 

二、粒子模块

粒子系统主模块(Particle System)

包含影响整个系统的全局属性,大多数这些属性用于控制新创建的粒子的初始状态

  1. Duration:粒子系统运行时间,时间结束后不会再发射粒子,但已经发射出的粒子当然不会消失
  2. Looping:如果启用此属性,系统将在其持续时间结束时再次启动并无限循环
  3. Prewarm:粒子预热,必须启用 ②Looping 才生效,如果启用此属性,则在粒子开始产生时,默认系统已经完成了一个生命周期(即完成了一个 ①Duration)
  4. Start Delay:启用此属性后,系统开始发射粒子前将延迟一段时间(单位:秒)
  5. Start Lifetime:单个粒子的生命周期持续时间,结束后该粒子被销毁
  6. Start Speed:单个粒子在发射方向的初始速度
  7. 3D Start Size / Start Size:粒子发射时的初始大小,需要注意的是,如果你设置了 3D Start Size Z 轴的大小,那么必须要保证粒子是 3D 的,这个在 Renderer 中有设置
  8. 3D Start Rotation / Start Rotation:粒子发射时的初始旋转度数
  9. Flip Rotation:范围 [0, 1],使一定百分比的粒子按照相反的方向旋转
  10. Start Color:每个粒子的初始颜色
  11. Gravity Modifier:缩放 Physics 窗口中设置的重力值,值为零会关闭重力影响,这个属性可以暂时不用管,默认就好
  12. Simulation Space:控制粒子的运动位置是在父对象的局部空间中(与父对象一起移动)、在世界空间中还是相对于自定义对象(与选择的自定义对象一起移动)
  13. Simulation Speed:整个粒子系统的发射速度
  14. Delta Time:是否受 Time 窗口中的 TimeScale 值的影响,Unscaled 为忽略该值(例如想要游戏暂停时,粒子特效依旧播放)
  15. Scaling Mode:控制粒子的缩放模式,Hierarchy 是受自身的缩放影响,也受父级的缩放影响;Local 只受自身的缩放影响,Shape 不受缩放影响
  16. Play on Awake:如果启用此属性,粒子系统会在创建对象时自动启动,否则需要代码控制,注意这个设置会同时对整个对象下所有的粒子系统生效
  17. Emitter Velocity:选择粒子系统如何计算 Inherit Velocity 和 Emission 模块使用的速度。系统可使用刚体组件(如果存在)或通过跟踪变换组件的移动情况来计算速度,这个属性可以暂时不用管,默认就好
  18. Max Particles:粒子系统中粒子数量上限,如果超过限制,则会移除一些粒子
  19. Auto Random Seed:每次粒子系统启用时,是否使用不同的随机种子,如果停用此属性,则每次播放的粒子效果会完全一致
  20. Random Seed:停用 ⑲Auto Random Seed 时,此值为指定的随机种子
  21. Stop Action:当属于粒子系统的所有粒子都已完成其生命周期时,可使系统执行某种操作,这个操作可以是禁用(Disable)、销毁(Destroy),或者将 OnParticleSystemStopped 回调(Callback)发送给附加到游戏对象的任何脚本(当一个系统的所有粒子都已死亡,并且系统存活时间已超过 ①Duration 设定的值时,判定该系统已停止;对于循环系统,只有在通过脚本停止系统时才会发生这种情况)
  22. Culling Mode:选择粒子在屏幕外时,对粒子系统的处理,这个属性可以暂时不用管,默认就好
  23. Ring Buffer Mode:将粒子从粒子系统中移除的方式,这个属性可以暂时不用管,默认就好

对于极大多数的属性,点击右边的箭头符号都可以看到一些额外的设置,这就意味着这个值可以使用动态值,而非定值,例如你想要粒子的初始发射速度在一定范围内随机决定

  • Constant:属性的值在其整个生命周期内是固定的
  • Curve:该值由曲线/图形指定
  • Random Between Two Constants:两个常量值定义了值的上限和下限,实际值随着时间的推移在这些边界之间随机变化
  • Random Between Two Curves:两条曲线定义了值在生命周期内给定点的上限和下限,当前值在这些边界之间随机变化
  • Random:其它随机设置

一个颜色设定的例子:

其它模块

  • 发射模块(Emission):基础模块,影响粒子系统发射的速率和时间
  • 形状模块(Shape):基础模块,定义可发射粒子体积、表面以及起始速度的方向,不启用这个模块所有的粒子就会排成一条线
  • 生命周期速度模块(Velocity Over Lifetime):控制粒子在其生命周期内的速度
  • 生命周期速度限制模块(Limit Velocity Over Lifetime):控制粒子在其生命周期内速度的变化,包括阻力限制等(可以理解为控制粒子在其生命周期内的加速度),一般用于烟花特效等带有初速度的粒子
  • 继承速度模块(Inherit Velocity):随时间推移,粒子速度会受到其父对象移动的影响,往往用于移动物体发射粒子
  • 受力模块(Force Over Lifetime):通过此模块中指定的力可对粒子加速,例如风对粒子的影响
  • 颜色模块(Color Over Lifetime):指定粒子的颜色和透明度在其生命周期中如何变化,用于实现粒子发射过程中颜色变化
  • 颜色速度模块(Color By Speed):在此模块中可设置粒子的颜色根据粒子速度发生变化
  • 尺寸模块(Size over Lifetime):指定粒子的大小尺寸在其生命周期中如何变化
  • 尺寸速度模块(Size by Speed):在此模块中可设置粒子的尺寸根据粒子速度发生变化,例如实现更好的爆炸效果:更小的碎片拥有更高的加速度
  • 旋转模块(Rotation Over Lifetime):控制粒子在移动时旋转
  • 旋转速度模块(Rotation By Speed):在此模块中可设置粒子的旋转根据粒子速度发生变化,例如一个纸团被风吹起,风力越大,纸团移动速度越快,在空中旋转的速度也会越快
  • 外力模块(External Forces):高级模块,可设置 Unity 风场对粒子的影响
  • 噪声模块(Noise):高级模块,在粒子发射过程中添加随机性
  • 碰撞模块(Collision):高级模块,控制粒子如何与场景中的游戏对象碰撞
  • 触发器模块(Triggers):高级模块,控制粒子可与场景中的触发器进行交互:例如实现粒子雨,使其不会穿过屋顶到达室内
  • 子发射器(Sub Emitters):可以在粒子生命周期的某些阶段在粒子位置处创建的附加粒子发射器,例如实现法术溅射效果
  • 额外的序列帧动画(Texture Sheet Animation):粒子的图形不必是静止图像,可以为其添加序列帧动画,这部分 Unity3D 帮你做好了
  • 光照模块(Lights):粒子会受到光照影响,需要注意性能
  • 拖尾(Trails):给粒子增加拖尾效果
  • 自定义模块(Custom Data):为粒子添加自定义数据,可以由你来决定这个模块用来做什么
  • 渲染模块(Renderer):基础模块,设置粒子的渲染信息和材质信息

 

三、主模块应用和测试

 

参考文章:

 

标签:粒子系统,生命周期,粒子,简介,UnityParticle1,模块,速度,属性
来源: https://blog.csdn.net/Jaihk662/article/details/115416008

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有