1 簡介
? ? ? ? 拖尾(TrailRenderer)、線段渲染器(LineRenderer)、粒子系統(tǒng)(ParticleSystem)是 Unity3D 提供的三大特效,其中粒子系統(tǒng)的功能最為強(qiáng)大,特效也最炫酷,但操作也最復(fù)雜。粒子系統(tǒng)中,不斷地有粒子生成和粒子消亡,一般而言,粒子消亡速率和生成速率保持一致(除預(yù)熱階段),使得粒子系統(tǒng)保持一個穩(wěn)定狀態(tài)。使用粒子系統(tǒng),可以實(shí)現(xiàn)煙花、水泡、槍口火花、核彈爆炸等特效。
????????在 Hierarchy 窗口右鍵,依次選擇【Effects→Particle System】,可以創(chuàng)建一個粒子系統(tǒng)。
????????粒子系統(tǒng)的使用非常靈活,主要有以下用法:
- 控制發(fā)射器的形狀(圓柱形、圓錐形、球形、圓形等)、發(fā)射周期、粒子數(shù)、粒子預(yù)熱、發(fā)射延時等;
- 控制粒子的形狀、大小、顏色、材質(zhì)、速度、旋轉(zhuǎn)、生命周期等,并且在粒子的生命周期內(nèi)可以修改這些屬性;
- 給粒子添加拖尾特效;
- 控制多個粒子系統(tǒng)并行或串行發(fā)射粒子。
? ? ? ? 粒子系統(tǒng)屬性面板如下:?
- Particle System:初始化模塊
- Emission:發(fā)射模塊
- Shape:發(fā)射器形狀模塊
- Velocity over Lifetime:生命周期內(nèi)速度變化模塊
- Limit Velocity over Lifetime:生命周期內(nèi)速度約束模塊
- Inherit Velocity:繼承父對象的速度,粒子速度會受到其父對象移動的影響
- 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ā)器模塊,如粒子雨,使粒子不會達(dá)到屋內(nèi)
- Sub Emitters:子發(fā)射器模塊,多個粒子系統(tǒng)并行或串行發(fā)射粒子
- Texture Sheet Animation:紋理層動畫模塊,可以控制將一張圖片分割成多個部分,每次將其中的一個部分取出作為粒子貼圖
- Lights:光照模塊
- Trails:拖尾模塊,可以給粒子添加拖尾效果
- Custom Data:自定義模塊,為粒子自定義數(shù)據(jù)
- Renderer:渲染模塊,可以設(shè)置渲染材質(zhì)球、拖尾材質(zhì)球等
2?Particle System(初始化模塊)
- Duration:粒子系統(tǒng)發(fā)射粒子的持續(xù)時間,當(dāng)開啟 Looping 后,Duration 失效;
- Looping:是否循環(huán)發(fā)射粒子;
- Prewarm:是否開啟粒子預(yù)熱,開啟后,粒子個數(shù)從?0 逐漸增加到最大值;
- Start Delay:發(fā)射粒子之前的延遲,當(dāng)開啟 Prewarm(預(yù)熱)后不能使用此項;
- Start Lifetime:粒子初始生命(存活時長),以秒為單位;
- Start Speed:粒子初始速度
- 3D Start SIze:粒子初始 3D 尺寸,開啟后需要設(shè)置 X、Y、Z大?。?/li>
- Start Size:粒子初始大小,3D Start SIze 開啟后此選項消失;
- 3D Start Rotation:粒子初始 3D 旋轉(zhuǎn),開啟后,需要設(shè)置粒子在 X、Y、Z 軸上的旋轉(zhuǎn);
- Start Rotation:粒子初始旋轉(zhuǎn)角度,3D Start Rotation 開啟后此選項消失;
- Randomize Rotation:隨機(jī)化旋轉(zhuǎn),取值 0~1,表示粒子反向(順時針)旋轉(zhuǎn)的概率;
- Start Color:粒子初始顏色;
- Gravity Modifier:粒子受到重力影響;
- Simulation Space:粒子運(yùn)動使用的坐標(biāo)系(本地坐標(biāo)系、世界坐標(biāo)系);
- Simulation Speed:改變粒子系統(tǒng)中所有粒子的速度,取值表示倍數(shù);
- Delta Time:調(diào)整使用固定時間還是幀刷新粒子狀態(tài);
- Scaling Mode:縮放粒子系統(tǒng)的狀態(tài);
- Play On Awake:粒子系統(tǒng)啟動后是否開啟自動播放;
- Emitter Velocity:粒子發(fā)射后的移動方式,采用 Rigidbody(剛體)還是 Transform(變換)
- Max Particles:粒子系統(tǒng)中最大粒子個數(shù);
- Auto Random Seed:自動隨機(jī)種子,粒子的部分狀態(tài)隨機(jī)生成,相同的隨機(jī)數(shù)種子,每次產(chǎn)生的隨機(jī)數(shù)一致;
- Stop Action:當(dāng)粒子系統(tǒng)發(fā)射完所有粒子后的操作,可以添加回調(diào)函數(shù)或在腳本中重寫以下方法:
public void OnParticleSystemStopped()
? ? ? ? 補(bǔ)充:屬性右邊的小三角形都可以展開,用戶可以設(shè)置某屬性取值方式,如下:
- Constant:該屬性取值是一個固定常量
- Curve:該屬性取值是一個變量,變量由曲線控制,用戶可以自定義曲線;
- Random Between Two Constant:該屬性取值是 2 個常量中的隨機(jī)數(shù);
- Random Between Two Curve:該屬性取值是 2 個變量中的隨機(jī)數(shù),變量由 2 條曲線控制,用戶可以自定義曲線。
3?Emission(發(fā)射模塊)
- Rate over Time:發(fā)射頻率按時間,每秒發(fā)射次數(shù)(未開啟 Bursts 時,每次發(fā)射一個粒子);
- Rate over Distance:發(fā)射頻率按距離,移動粒子系統(tǒng)時,每米發(fā)射次數(shù)(未開啟 Bursts 時,每次發(fā)射一個粒子);
- Bursts:每次發(fā)射開啟多少個循環(huán)(Cycles),每個循環(huán)發(fā)射多少個粒子(Count),每個循環(huán)的時間間隔是多少(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 時,粒子會貼著平面飛行;
- Lifetime Loss:生命衰減系數(shù),取值 0~1,每次碰撞生命都會衰減,取?0 時碰撞后粒子正常死亡,取 1 時碰撞后粒子立即死亡;
- Visualization:可視化平面,網(wǎng)格(Grid)還是實(shí)體(Solid);
- Scale Plane:縮放平面。
????????點(diǎn)擊 Planes 右邊的加號,可以添加碰撞平面(此平面在運(yùn)行時不可見),此時粒子系統(tǒng)游戲?qū)ο笊献詣犹砑恿藗€子對象,如下:
? ? ? ? ?選中 Plane Transform 1 游戲?qū)ο?,?Inspector 窗口調(diào)整旋轉(zhuǎn)角度,粒子系統(tǒng)顯示效果如下:
7?Sub Emitters(子發(fā)射器模塊)
- Birth:子粒子系統(tǒng)與主粒子系統(tǒng)同時發(fā)射粒子(并行發(fā)射);
- Collision:主粒子系統(tǒng)發(fā)生粒子碰撞時,觸發(fā)子粒子系統(tǒng)發(fā)射粒子;
- Death:主粒子系統(tǒng)粒子消亡時,觸發(fā)子粒子系統(tǒng)發(fā)射粒子(串行發(fā)射)。
? ? ? ? 設(shè)置主粒子系統(tǒng)每秒發(fā)射 1 個粒子(Rate over Time = 1,Emission 模塊),再添加子粒子系統(tǒng),如下:
? ? ? ? ?此時主粒子系統(tǒng)下面會自動添加一個子粒子系統(tǒng),如下:
? ? ? ? ?選中 SubEmitter0,設(shè)置初始生命(Start Lifetime)為 1 秒,初始速度(StartSpeed)為 8 米 / 秒,查看 Emission 模塊,發(fā)現(xiàn)自動添加了 Bursts,如下:?
? ? ? ? 粒子系統(tǒng)顯示效果如下:
8 Trails(拖尾模塊)
? ? ? ? 粒子系統(tǒng)中的拖尾與?TrailRenderer 組件類似。
- Mode:拖尾模式,取值有:Particles(每個粒子拖尾獨(dú)立繪制)、Ribbon(絲帶,相鄰粒子拖尾相連)
- Lifetime:拖尾生命,拖尾長度由 0 增長到最長時的時長;
- Color over Lifetime:拖尾生命周期內(nèi)顏色變化;
- Width over Trail:拖尾從頭到尾寬度值;
- Color over Trail:拖尾從頭到尾顏色值。
????????設(shè)置粒子系統(tǒng)每秒發(fā)射 1 個粒子(Rate over Time = 1,Emission 模塊),初始生命(Start Lifetime)為 5 秒,初始速度(StartSpeed)為 25 米 / 秒,重力(Gravity Modifier)為 1,拖尾材質(zhì)(Trail Material,Renderer 模塊)為 Default-Line,拖尾(Trails)模塊設(shè)置見屬性面板,粒子系統(tǒng)顯示效果如下:文章來源:http://www.zghlxwxcb.cn/news/detail-792763.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-792763.html
到了這里,關(guān)于【Unity3D】粒子系統(tǒng)ParticleSystem的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!