Version: 2019.2
什么是粒子系统?
创建简单爆炸

在 Unity 中使用粒子系统

Unity 使用组件实现粒子系统,因此将粒子系统放置在场景中涉及到添加预制的游戏对象(菜单:__GameObject__ > Effects > Particle System__)或将组件添加到现有游戏对象(菜单:__Component > Effects > Particle System__)。由于组件非常复杂,因此 Inspector 分为多个可折叠子部分或__模块__,每个子部分或模块都包含一组相关属性。此外,可使用单独的 Editor 窗口(通过 Inspector 中的 Open Window__ 按钮访问)同时编辑一个或多个系统。请参阅有关粒子系统组件和各个粒子系统模块的文档,了解更多信息。

选择带有粒子系统的游戏对象时,Scene 视图包含一个小的 Particle Effect 面板,其中有一些简单控件,用于显示对系统设置的更改。

Playback Speed 用于加快或减慢粒子模拟速度,可以直观查看在高级状态下的效果。Playback Time 表示自系统启动以来经过的时间;这可能比实时更快或更慢,具体取决于播放速度。Particle Count 表示系统中当前有多少粒子。通过单击 Playback Time 标签并向左和向右拖动鼠标,即可前后移动播放时间。面板顶部的按钮可用于暂停和恢复模拟,或停止模拟并重置为初始状态。

随时间推移而变化的属性

粒子甚至整个粒子系统的许多数字属性都可能随时间而变化。Unity 提供了几种不同的方法来指定这种变化的发生方式:

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

将属性设置为 CurveRandom Between Two Curves 时,粒子系统曲线编辑器 (Particle System Curves Editor) 将显示在 Inspector 的底部:

要编辑曲线,请单击并拖动结束点或关键点以调整曲线形状:

粒子系统曲线与动画曲线类似。如需了解关于使用曲线的更多信息,请参阅有关编辑曲线的文档。

粒子系统曲线编辑器具有以下按钮:

  • __Optimize__:使曲线适应四个或更少的关键点以构建称为多项式 (Polynomial) 的快速计算器,这比读取未优化的曲线更有效。
  • __Remove__:删除选定的曲线。

要编辑粒子系统播放曲线的方式,请单击所选关键点旁边的齿轮图标,然后选择以下选项之一:

  • __Loop__:在粒子的生命周期内以指定的次数播放曲线。例如,如果制作一条缩放粒子大小的曲线,可以指定其多次循环,这会使“大小缩放”动画在粒子消亡之前多次播放,而不是仅播放一次。
  • Ping Pong__:与 Loop__ 相似,但以连续振荡的方式依次向前和向后播放曲线。
  • __Clamp__:将超出曲线时间范围的粒子查询限制为曲线的第一个或最后一个值。

主模块中的 Start Color 属性具有以下选项:

  • __Color:__所有粒子在粒子系统的整个生命周期内都是以这种颜色开始。粒子在自身的生命周期中仍可以改变颜色。
  • __Gradient:__粒子系统发出的粒子以渐变开始时的颜色开始,而以渐变结束时的颜色结束。渐变线代表粒子系统的生命周期;粒子系统在对应于粒子系统当前的存在时间点处从渐变中选择一种颜色。
  • __Random Between Two Colors:__粒子系统选择两种给定颜色之间的随机线性插值作为初始粒子颜色。
  • __Random Between Two Gradients:__粒子系统在对应于该系统当前的存在时间点处从每个给定渐变中选择一种颜色。选择两种选定颜色之间的随机线性插值作为初始粒子颜色。
  • Random Color:__类似于 Gradient__ 模式(这种情况下,粒子从定义的 Gradient 中选取初始颜色)。但是,在这种模式下,粒子系统不会根据粒子系统的存在时间来选择样本,而是会随机进行选择。此模式还很适合与渐变编辑器 (Gradient Editor) 内部的 Fixed Gradient Mode 配合使用。启用此选项后,可以选择一组预定义的精确起始颜色,然后将概率应用于每种颜色。

其他颜色属性(例如 Color over Lifetime__)可以使用 Gradient__ 或 Random Between Two Gradients 模式。

要计算最终的粒子颜色结果,粒子系统将各种模块中的颜色属性按照每个通道相乘。

为粒子设置 Gradient 颜色时,将显示渐变编辑器 (Gradient Editor):

  • __Mode:__确定是否混合粒子颜色设置。
  • __Color:__显示渐变中当前所选关键点的颜色。使用此项可以编辑渐变中该位置的颜色。
  • __Location:__显示当前所选关键点在渐变上的距离。
  • __Presets:__保存渐变设置。单击 New 可将当前值集设置为渐变预设。

各种模块中的颜色属性按照每个通道相乘,从而计算出最终的粒子颜色结果。

动画绑定

动画系统可以访问所有粒子属性,这意味着可以将它们设置到关键帧中并从动画中控制它们。

要访问粒子系统的属性,必须有一个 Animator 组件连接到粒子系统的游戏对象。此外还需要动画控制器 (Animation Controller) 和动画。

要动画化粒子系统,请添加 Animator 组件,并为动画控制器 (Animator Controller) 分配动画。
要动画化粒子系统,请添加 Animator 组件,并为动画控制器 (Animator Controller) 分配动画。

要动画化粒子系统属性,请打开 Animation 窗口__,并选择包含 Animator 和粒子系统的游戏对象。单击 Add Property__ 以添加属性。

在 Animation 窗口中为动画添加属性。
在 Animation 窗口中为动画添加属性。

向右滚动以显示__添加控件__。

请注意,对于曲线,只能对整体__曲线乘数__进行关键帧设置(可在 Inspector 中的曲线编辑器旁边找到该曲线乘数)。


  • 2019–04–16 页面已修订

  • 在 Unity 4.6 中更改了 GameObject 菜单

  • 2018.3 版中添加了粒子系统 Loop/Ping-Pong 曲线播放 NewIn20183

什么是粒子系统?
创建简单爆炸