概述
在3D游戏中,大多数人物,小道具以及自然景观都以mesh表示,而2D游戏中用sprite表示。mesh和sprite是描绘这些形状定义明确的固态对象的理想方式。游戏中还有一些实体,在大自然中是流动的和无具体形状的,很难用mesh和sprite描绘。像流动的液体,烟雾,云彩以及魔法效果等效果,可以用一种叫做“粒子系统”的方式来实现这些与生俱来的流动体和能量。
基本概念粒子是粒子系统中大量的显示并移动的小型简单的图片或mesh,每个粒子表示液体或无形实体的一部分,所有粒子的效果共同形成了完整实体的效果。使用一个烟雾云举例,每个例子都有一个小的烟雾纹理,可能像一片小的云。当很多这些小的云片在场景中的某一块区域组合在一起时,整体效果就是一大块填充的云。
系统的动力学
每个粒子都有一个预定的生命周期,一船是几秒种,在这几秒钟内可能会发生各种变化。其生命周期最开始是被粒子系统生成或发射出来,系统发射粒子的位置是一个区域内随机的,可能是一个球体,半球体,圆锥体,盒子或任意mesh。粒子会一直显示到其时间结束时,被系统移除。系统的发射率决定了每秒中有多少粒子会被发射,但是发射的精确时间是稍微有点随机的。发射率和平均生命周期决定了稳定状态下粒子的数量。
粒子的动力学发射和生命周期的设置会影响整个系统的行为,但是单个粒子可能会随着时间改变,每个粒子都有一个速度向量,此向量决定其方向和每一帧粒子移动的距离。此速度可能会被力和重力改变,或者当粒子在Terrain的风区(wind zone)被吹动时也会改变。粒子的颜色,大小和旋转也会随着时间改变,或者随时其当前的移动速度改变。颜色包括alpha(透明度),所以一个粒子可以被渐渐退色或加色,而不是简单地突然消息或出现。
粒子动力可以用于方便地模拟很多种流动效果。比如瀑布可以通过使用一个薄的发射形状然后让水珠在重力下加速下落。火的烟雾上升,扩大,最终消散,所以这个系统应该给烟粒子用一个向上的力,并扩大其大小和透明度。
属性
粒子系统组件有很多属性,分成了很多块,每一块都可以再展开,不钩选表示不使用些功能。
Particle System,粒子系统的全局属性
- Duration,粒子系统的运行时间
- Looped,
- Prewarm,
- Start Delay
- Start Lifetime
- Start Speed
- Start Size
- Start Rotation
- Start Color
- Gravity Multiplier,重力的倍数。
- Inherit Velocity,粒子是否继承整个系统的速度。
- Simulation Space,活动在系统空间还是世界空间中。
- Play on Awake
- Max Particles
Emission Module,发射率和发射时间
![](http://docs.unity3d.com/uploads/Main/PartSysEmissionInsp.png)
- Rate
- Bursts
Shape Module,决定粒子的形状以及在哪里开始发射
![](http://docs.unity3d.com/uploads/Main/PartSysShapeInsp.png)
- Shape
- Random Direction
- Radius
- Angle
- Box X, Y, Z
- Mesh
- Emit from Shell
- Emit from
Velocity Over Lifetime Module,加速度
![](https://i-blog.csdnimg.cn/blog_migrate/24e6bafe31ebf1d04e6892bb0318310e.png)
- X, Y, Z
- Space
Limit Velocity Over Lifetime Module,决定速度怎样减少
![](https://i-blog.csdnimg.cn/blog_migrate/f41cccb9edabcb8fe4d5ac69c18145cb.png)
- Speed
- Space
- Dampen
Force Over Lifetime Module,粒子上的外力
![](https://i-blog.csdnimg.cn/blog_migrate/92074ce5d760bb22c1e0aa83d92392e7.png)
Color Over Lifetime Module,粒子的颜色和透明度如何随着时间变化
![](https://i-blog.csdnimg.cn/blog_migrate/e0be10e47e4d6cbffd1b3e89924470a9.png)
Color By Speed Module,随着速度变化的颜色
![](https://i-blog.csdnimg.cn/blog_migrate/49d6e190ea8580c0ef3b4b0218a79e59.png)
Size Over Lifetime Module,粒子大小的变化
Size By Speed Module
Rotation Over Lifetime Module/Speed Module
![](https://i-blog.csdnimg.cn/blog_migrate/bbe890b576b75851e7295c28da30de0b.png)
External Forces Module,在风区时的外力倍数
![](https://i-blog.csdnimg.cn/blog_migrate/4201dc3756b4a452cc7249b4066e0653.png)
Collision Module,决定粒子碰撞的方式
![](https://i-blog.csdnimg.cn/blog_migrate/863818a69edf5d8ba5b3bf962986b060.png)
Sub Emitters Module,设置子发射器。
![](https://i-blog.csdnimg.cn/blog_migrate/0e4054155998ba1a410dc829ebcc4f88.png)
Texture Sheet Animation Module,粒子的纹理
![](http://docs.unity3d.com/uploads/Main/PartSysTexSheetInsp.png)
Renderer Module,粒子的图片或mesh如何变换
![](http://docs.unity3d.com/uploads/Main/PartSysRendererInsp.png)