1 簡(jiǎn)介
拖尾(TrailRenderer)、線段渲染器(LineRenderer)、粒子系統(tǒng)(ParticleSystem)是 Unity3D 提供的三大特效,其中粒子系統(tǒng)的功能最為強(qiáng)大,特效也最炫酷,但操作也最復(fù)雜。粒子系統(tǒng)中,不斷地有粒子生成和粒子消亡,一般而言,粒子消亡速率和生成速率保持一致(除預(yù)熱階段),使得粒子系統(tǒng)保持一個(gè)穩(wěn)定狀態(tài)。使用粒子系統(tǒng),可以實(shí)現(xiàn)煙花、水泡、槍口火花、核彈爆炸等特效。
在 Hierarchy 窗口右鍵,依次選擇【Effects→Particle System】,可以創(chuàng)建一個(gè)粒子系統(tǒng)。

粒子系統(tǒng)的使用非常靈活,主要有以下用法:
- 控制發(fā)射器的形狀(圓柱形、圓錐形、球形、圓形等)、發(fā)射周期、粒子數(shù)、粒子預(yù)熱、發(fā)射延時(shí)等;
- 控制粒子的形狀、大小、顏色、材質(zhì)、速度、旋轉(zhuǎn)、生命周期等,并且在粒子的生命周期內(nèi)可以修改這些屬性;
- 給粒子添加拖尾特效;
- 控制多個(gè)粒子系統(tǒng)并行或串行發(fā)射粒子。
粒子系統(tǒng)屬性面板如下:

- Particle System:初始化模塊
- Emission:發(fā)射模塊
- Shape:發(fā)射器形狀模塊
- Velocity over Lifetime:生命周期內(nèi)速度變化模塊
- Limit Velocity over Lifetime:生命周期內(nèi)速度約束模塊
- Inherit Velocity:繼承父對(duì)象的速度,粒子速度會(huì)受到其父對(duì)象移動(dòng)的影響
- Force over Lifetime:生命周期內(nèi)受力變化模塊
- Color over Lifetime:生命周期內(nèi)顏色變化模塊
- Color by Speed:顏色受速度的影響模塊
- Size over Lifetime:生命周期內(nèi)粒子大小變化模塊
- Size by Speed:粒子大小受速度影響模塊
- Rotation over Lifetime:生命周期內(nèi)方向變化模塊
- Rotation by Speed:方向受速度影響模塊
- External Forces:粒子受外力影響模塊
- Noise:粒子受到隨機(jī)噪聲影響模塊
- Collision:碰撞模塊
- Triggers:觸發(fā)器模塊,如粒子雨,使粒子不會(huì)達(dá)到屋內(nèi)
- Sub Emitters:子發(fā)射器模塊,多個(gè)粒子系統(tǒng)并行或串行發(fā)射粒子
- Texture Sheet Animation:紋理層動(dòng)畫(huà)模塊,可以控制將一張圖片分割成多個(gè)部分,每次將其中的一個(gè)部分取出作為粒子貼圖
- Lights:光照模塊
- Trails:拖尾模塊,可以給粒子添加拖尾效果
- Custom Data:自定義模塊,為粒子自定義數(shù)據(jù)
- Renderer:渲染模塊,可以設(shè)置渲染材質(zhì)球、拖尾材質(zhì)球等
2 Particle System(初始化模塊)

- Duration:粒子系統(tǒng)發(fā)射粒子的持續(xù)時(shí)間,當(dāng)開(kāi)啟 Looping 后,Duration 失效;
- Looping:是否循環(huán)發(fā)射粒子;
- Prewarm:是否開(kāi)啟粒子預(yù)熱,開(kāi)啟后,粒子個(gè)數(shù)從 0 逐漸增加到最大值;
- Start Delay:發(fā)射粒子之前的延遲,當(dāng)開(kāi)啟 Prewarm(預(yù)熱)后不能使用此項(xiàng);
- Start Lifetime:粒子初始生命(存活時(shí)長(zhǎng)),以秒為單位;
- Start Speed:粒子初始速度
- 3D Start SIze:粒子初始 3D 尺寸,開(kāi)啟后需要設(shè)置 X、Y、Z大?。?/li>
- Start Size:粒子初始大小,3D Start SIze 開(kāi)啟后此選項(xiàng)消失;
- 3D Start Rotation:粒子初始 3D 旋轉(zhuǎn),開(kāi)啟后,需要設(shè)置粒子在 X、Y、Z 軸上的旋轉(zhuǎn);
- Start Rotation:粒子初始旋轉(zhuǎn)角度,3D Start Rotation 開(kāi)啟后此選項(xiàng)消失;
- Randomize Rotation:隨機(jī)化旋轉(zhuǎn),取值 0~1,表示粒子反向(順時(shí)針)旋轉(zhuǎn)的概率;
- Start Color:粒子初始顏色;
- Gravity Modifier:粒子受到重力影響;
- Simulation Space:粒子運(yùn)動(dòng)使用的坐標(biāo)系(本地坐標(biāo)系、世界坐標(biāo)系);
- Simulation Speed:改變粒子系統(tǒng)中所有粒子的速度,取值表示倍數(shù);
- Delta Time:調(diào)整使用固定時(shí)間還是幀刷新粒子狀態(tài);
- Scaling Mode:縮放粒子系統(tǒng)的狀態(tài);
- Play On Awake:粒子系統(tǒng)啟動(dòng)后是否開(kāi)啟自動(dòng)播放;
- Emitter Velocity:粒子發(fā)射后的移動(dòng)方式,采用 Rigidbody(剛體)還是 Transform(變換)
- Max Particles:粒子系統(tǒng)中最大粒子個(gè)數(shù);
- Auto Random Seed:自動(dòng)隨機(jī)種子,粒子的部分狀態(tài)隨機(jī)生成,相同的隨機(jī)數(shù)種子,每次產(chǎn)生的隨機(jī)數(shù)一致;
- Stop Action:當(dāng)粒子系統(tǒng)發(fā)射完所有粒子后的操作,可以添加回調(diào)函數(shù)或在腳本中重寫(xiě)以下方法:
public void OnParticleSystemStopped()
補(bǔ)充:屬性右邊的小三角形都可以展開(kāi),用戶可以設(shè)置某屬性取值方式,如下:

- Constant:該屬性取值是一個(gè)固定常量
- Curve:該屬性取值是一個(gè)變量,變量由曲線控制,用戶可以自定義曲線;
- Random Between Two Constant:該屬性取值是 2 個(gè)常量中的隨機(jī)數(shù);
- Random Between Two Curve:該屬性取值是 2 個(gè)變量中的隨機(jī)數(shù),變量由 2 條曲線控制,用戶可以自定義曲線。
3 Emission(發(fā)射模塊)

- Rate over Time:發(fā)射頻率按時(shí)間,每秒發(fā)射次數(shù)(未開(kāi)啟 Bursts 時(shí),每次發(fā)射一個(gè)粒子);
- Rate over Distance:發(fā)射頻率按距離,移動(dòng)粒子系統(tǒng)時(shí),每米發(fā)射次數(shù)(未開(kāi)啟 Bursts 時(shí),每次發(fā)射一個(gè)粒子);
- Bursts:每次發(fā)射開(kāi)啟多少個(gè)循環(huán)(Cycles),每個(gè)循環(huán)發(fā)射多少個(gè)粒子(Count),每個(gè)循環(huán)的時(shí)間間隔是多少(Interval)
設(shè)置 Bursts(爆炸)參數(shù)如下:

顯示效果如下:

4 Shape(發(fā)射器形狀模塊)

- Shape:發(fā)射器形狀,主要有:Sphere、Hemisphere、Cone、Donut、Box、Mesh、Mesh Renderer、Skinned Mesh Renderer、Circle、Edge;



5 Renderer(渲染器模塊)

- Render Mode:渲染模式,主要有:Billboard(廣告牌,粒子永遠(yuǎn)面朝相機(jī))、Stretched Billboard(可拉伸廣告牌)、Horizontal Billboard(水平廣告牌,粒子面朝 Y 軸正方向)、Vertical Billboard(垂直廣告牌,粒子面朝 X 軸正方向)、Mesh(網(wǎng)格);
- Material:粒子材質(zhì);
- Trail Material:拖尾特效材質(zhì),通常取 Default-Line。
6 Collision(碰撞模塊)

- Planes:碰撞平面;
- Dampen:阻尼系數(shù),取值 0~1,碰撞后速度減小;
- Bounce:反彈系數(shù),取值 0~1,碰撞后的反彈力度,取值為 0 時(shí),粒子會(huì)貼著平面飛行;
- Lifetime Loss:生命衰減系數(shù),取值 0~1,每次碰撞生命都會(huì)衰減,取 0 時(shí)碰撞后粒子正常死亡,取 1 時(shí)碰撞后粒子立即死亡;
- Visualization:可視化平面,網(wǎng)格(Grid)還是實(shí)體(Solid);
- Scale Plane:縮放平面。
點(diǎn)擊 Planes 右邊的加號(hào),可以添加碰撞平面(此平面在運(yùn)行時(shí)不可見(jiàn)),此時(shí)粒子系統(tǒng)游戲?qū)ο笊献詣?dòng)添加了個(gè)子對(duì)象,如下:

選中 Plane Transform 1 游戲?qū)ο?,?Inspector 窗口調(diào)整旋轉(zhuǎn)角度,粒子系統(tǒng)顯示效果如下:

7 Sub Emitters(子發(fā)射器模塊)

- Birth:子粒子系統(tǒng)與主粒子系統(tǒng)同時(shí)發(fā)射粒子(并行發(fā)射);
- Collision:主粒子系統(tǒng)發(fā)生粒子碰撞時(shí),觸發(fā)子粒子系統(tǒng)發(fā)射粒子;
- Death:主粒子系統(tǒng)粒子消亡時(shí),觸發(fā)子粒子系統(tǒng)發(fā)射粒子(串行發(fā)射)。
設(shè)置主粒子系統(tǒng)每秒發(fā)射 1 個(gè)粒子(Rate over Time = 1,Emission 模塊),再添加子粒子系統(tǒng),如下:

此時(shí)主粒子系統(tǒng)下面會(huì)自動(dòng)添加一個(gè)子粒子系統(tǒng),如下:

選中 SubEmitter0,設(shè)置初始生命(Start Lifetime)為 1 秒,初始速度(StartSpeed)為 8 米 / 秒,查看 Emission 模塊,發(fā)現(xiàn)自動(dòng)添加了 Bursts,如下:

粒子系統(tǒng)顯示效果如下:

8 Trails(拖尾模塊)
粒子系統(tǒng)中的拖尾與 TrailRenderer 組件類(lèi)似。

- Mode:拖尾模式,取值有:Particles(每個(gè)粒子拖尾獨(dú)立繪制)、Ribbon(絲帶,相鄰粒子拖尾相連)
- Lifetime:拖尾生命,拖尾長(zhǎng)度由 0 增長(zhǎng)到最長(zhǎng)時(shí)的時(shí)長(zhǎng);
- Color over Lifetime:拖尾生命周期內(nèi)顏色變化;
- Width over Trail:拖尾從頭到尾寬度值;
- Color over Trail:拖尾從頭到尾顏色值。
設(shè)置粒子系統(tǒng)每秒發(fā)射 1 個(gè)粒子(Rate over Time = 1,Emission 模塊),初始生命(Start Lifetime)為 5 秒,初始速度(StartSpeed)為 25 米 / 秒,重力(Gravity Modifier)為 1,拖尾材質(zhì)(Trail Material,Renderer 模塊)為 Default-Line,拖尾(Trails)模塊設(shè)置見(jiàn)屬性面板,粒子系統(tǒng)顯示效果如下:

聲明:本文轉(zhuǎn)自【Unity3D】粒子系統(tǒng)ParticleSystem