一、Getting Started with Particle Systems
在Unity中打開已經建立好的Starter Project
。 裏面的資源分爲幾個文件夾:
- Materials:保存火材料。
- Models:包含火炬和炸彈模型及其材料。
- Prefabs:保存炸彈預製件。
- Scenes:包含火炬和炸彈場景。
- Scripts:保存初始腳本。
- Textures:包含火材料的紋理。
現在您已經看到了所有內容的存儲位置,您可以開始瞭解粒子系統在Unity中的工作原理。
二、Adding a Particle System
粒子系統通常在預定義空間內的隨機位置發射粒子,其可具有類似球形或錐形的形狀。 系統確定粒子本身的壽命,當壽命到期時,系統會破壞粒子。
粒子系統的一個好處是它們是可以添加到場景中任何GameObject
的組件。 想讓你的鯊魚從他們的眼睛裏發出激光嗎? 只需在鯊魚眼GameObject
中添加一個粒子系統,你的鯊魚就會不可阻擋!
從項目窗口打開Torch
場景並運行場景:
目前沒有多少事情發生。 火炬掛在牆上,但沒有火可見。 您需要先添加粒子系統。
停止運行場景並在層次結構中選擇TorchFireParticles
。 在Inspector
中,單擊Add Component
按鈕。 搜索Particle System
並單擊以添加它:
注意:您可能已經注意到沒有將粒子系統直接添加到
MedievalTorch GameObject
。 這是因爲粒子將從火炬的中間發出,而不是從頂部的燃料容器中發出。
播放你的場景;你會看到你已經發射了粒子:
注意:您可能會看到粉紅色顆粒而不是白色,這似乎是設置默認紋理的Unity bug。 如果是這種情況,請不要擔心:您將很快設置適當的火焰紋理。 如果您想立即修復它,請單擊粒子系統的
Renderer
部分,單擊Material
字段旁邊的Dot
,然後在彈出的窗口中雙擊Default-Particle
。
當您選擇帶有附加粒子系統的GameObject
時,您會注意到場景視圖右下角有一個黑色對話框。 此對話框允許您模擬或停止粒子系統。 單擊Simulate
可激活粒子系統並將按鈕更改爲Pause
按鈕。 要停止模擬器,請單擊Stop
按鈕。
此對話框對於設計在固定時間軸上運行的粒子系統非常有用,例如爆炸。
三、A Closer Look at a Particle System
看看Inspector
,你會注意到你添加的粒子系統組件有幾個subsections
:
這些subsections
中的每一個都稱爲Module
。 這些模塊包含粒子系統的設置。 默認情況下擴展的模塊稱爲Main
模塊:
Main
模塊是Unity
中任何粒子系統的肉和骨骼。 最常見的粒子設置在這裏:
- Duration:粒子系統運行的時間長度(以秒爲單位)。 將其保留爲默認值
5.00
。 - Looping:反覆發射粒子,直到粒子系統停止。 達到
Duration
時間後,循環重新開始。 火需要持續燃燒,因此請啓用此功能。
On & off
- Prewarm:僅在啓用
Looping
時使用。 粒子系統就好像它已經在啓動時完成了一個完整的循環。
On & off
爲了您的火力效果,請將此禁用狀態設置爲使其看起來像火炬一樣被點燃。
- Start Delay:粒子系統開始發射之前的延遲(以秒爲單位)。 將其保留爲默認值0。
- Start Lifetime:粒子的初始生命週期(秒)。 經過這段時間後,粒子被破壞。
Top: 8 seconds Bottom: 3 seconds
將生命週期設置爲4秒;這確保了火焰不會太高。
- Start Speed:粒子的初始速度。 顆粒的速度越大,它們就越分散。
Top: 2 Bottom: 10
將速度設置爲0.75;這將使火焰效果更慢,更密集。
注意:在修改粒子系統的設置時,您將在
Game Window
中看到它的預覽。 在閱讀本教程的同時,請密切關注此預覽。
在繼續之前,請運行場景以查看更改的效果:
你已經設置了火炬,但火焰效果仍然有很多不足之處。
可以通過手動調整Start Speed 速度曲線實現不同時間點的加速度等特效。
值得慶幸的是,主模塊(Main module)
還有其他選項可以進一步改善割炬的形狀和行爲。
四、More Main Module Properties
在層次結構中選擇TorchFireParticles GameObject
,然後向下滾動到粒子系統。 在主模塊下,查看以下屬性:
起始大小:粒子的初始大小。
- Start Size:粒子的初始大小。
Top: 0.2 Bottom: 1
將大小設置爲3;這是一個易於管理的尺寸,可讓您更清晰地看到各個粒子。
- Start Rotation:粒子的初始旋轉角度。
Top: 0° Bottom: 45°
保持旋轉0°;粒子是圓的,所以你幾乎不會注意到差異。
- Start Color:顆粒的初始顏色。 將顏色保持爲純白色的默認值
(255,255,255)
;你會通過紋理爲火焰着色。 - Gravity Modifier:縮放在
Unity
的Physics Manager
窗口中設置的重力值。 如果設置爲0,則重力將關閉。
上圖是來自重力修正( gravity modifier )
設置爲1的系統,這使得粒子像瀑布一樣向下流動。 將系統中的重力保持爲0;粒子將以您在Start Speed
中設置的速度向上移動。
- Simulation Space:在粒子系統中移動
Local Space
中的粒子。 在World Space
中,粒子一旦發射就會自由移動。
Top: local space Bottom: world space
將模擬集保留爲Local Space
。 只有移動粒子系統後才能看到效果。
-
Play On Awake:啓用後立即開始發光。 如果關閉此選項,則必須通過腳本或動畫系統手動啓動粒子系統。 保持此設置,因爲您希望在場景開始播放時啓動火。
-
Max Particles:系統可能同時存活的最大粒子數。 如果您嘗試發射的粒子多於此粒子,則根本不會發射粒子。 此設置主要是出於性能原因,在這種情況下,
1000
個粒子的默認值綽綽有餘。
哇,這是一個清單! 但結果,您已經學會了如何將粒子系統添加到場景中以及如何根據自己的喜好自定義它。
再次運行場景以查看更改的效果:
它每次看起來更有點像火,不是嗎?
但它需要更多的粒子。 爲此,您需要更改系統的emission
。
五、Introducing the Emission Module
發射(Emission)
模塊根據您的需要處理系統中發射粒子的數量和時間,以創建從連續流動到突然爆發的粒子的任何事物。
在仍在粒子系統的Inspector
中時,單擊Emission
模塊標題:
這打開了Emission
模塊:
Time over Time
表示每秒發出的粒子數。 將時間比率設置爲15
。
再次運行你的場景;你的粒子系統現在看起來更像是燃燒的火焰。
不可否認,它仍然看起來像煙霧。 但到目前爲止,這是本教程中最大的變化:自定義紋理!
六、Adding a Custom Texture
所有粒子都有一個粒子材料和一個定義它們外觀的紋理。 你可以用默認紋理做很多事情。 通過改變紋理,您可以創建魔法星,煙霧,當然還有火焰等效果。
改變粒子紋理非常容易。 到目前爲止,粒子已經使用Default-Particle
材質在屏幕上繪製,該材質是具有圓形漸變紋理的粒子材質:
要更改材質,請在層次結構中選擇TorchFireParticles GameObject
。 然後在Inspector
中找到粒子系統組件並打開粒子系統的Renderer
模塊。
在Project View
中打開Materials
文件夾,然後將FireMaterial Material
拖動到Material
屬性:
最後,運行場景以查看正在使用的自定義紋理:
你能感受到熱量嗎? 雖然火焰有點太寬;要解決這個問題,你必須改變粒子系統的形狀。
總結 : 常要調試的幾個地方
引用:https://www.jianshu.com/p/424dc71950dd