【Unity3D】粒子系統(tǒng)ParticleSystem

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;
Cone
Circle
Sphere

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容