在 2D世界中使用粒子系統 (Particle system) 碰撞物體
使用粒子系統 (Particle system) 產生粒子,並讓粒子與其他物件碰撞。可以用來製作粒子推動其他物體的效果,
首先建立一個 GameObject , 依自己需要取名(這邊取名 WindObject )
在這個 GameObject 之下建立一個 Particle system (Effects
-> Particle system
) ,依自己需要取名(這邊取名 WindEffect )
修改以下模組參數:
主要模組中的Duration
: 1 , 設定粒子系統的持續時間。設為 1 意味著粒子系統的 一次發射周期持續 1 秒。
- 如果粒子系統是循環播放的(Looping 開啟),它會每 1 秒重置並重新發射粒子。
- 如果 Looping 關閉,粒子系統只會運行 1 秒後停止。
Start Lifetime
: 0.5 , 每個粒子的生命週期(以秒為單位)。 設為 0.5 表示每個粒子在生成後僅存活 0.5 秒。當生命週期結束時,粒子將被銷毀。如果 Start Lifetime 設置為隨機範圍,則每個粒子會有不同的存活時間。Start Speed
: 2 , 粒子生成時的初始速度(以單位/秒為單位)。 設為 2 表示粒子從生成位置以每秒 2 單位的速度移動。Gravity Source
: 2D Physics 。 設為 2D Physics 表示粒子受到 Unity 2D 重力場的影響,會根據 Unity 2D 的 Physics2D.gravity 設定進行模擬。Simulation Space
: World 。 設為 World 表示粒子生成後會與世界空間對齊,並且粒子位置不會受到粒子系統的移動影響。Scaling Mode
: Hierarchy 。 Hierarchy 模式指的是粒子系統會根據其所在的父級物件及其整個層級結構的縮放來影響粒子的大小、速度、壽命等屬性。讓粒子系統可以直接隨父級物件縮放,無需手動調整。Max Particles
: 10 。 粒子系統同一時間允許存在的最大粒子數。設為 10 表示在任何時刻,粒子系統內的粒子數不會超過 10 個。
Emission 模組Rate over Time
: 10 。 每秒生成的粒子數量。設置為 10 意味著粒子系統會在每秒內均勻生成 10 個粒子。
- 會受到 Max Particles 與 Start Lifetime 限制,
- 如果 Max Particles 設置為 10,且粒子的存活時間(Start Lifetime)足夠長,那麼粒子系統最多同時顯示 10 個粒子,即便 Rate over Time 想生成更多粒子,也會受到限制。
- 當 Start Lifetime 為 0.5 時,粒子會在 0.5 秒內消失。因此,即使 Rate over Time 為 10,由於粒子存活時間短,每秒可能只有一半的粒子還存活。
Shape 模組Shape
: Edge 。 粒子會沿著一條 邊線(Edge) 發射,而不是從一個平面或三維體積中生成。Radius
: 0.1 。 當 Shape 設為 Edge 時,Radius 表示該邊線的長度(在視覺上呈現為一小段線段)。
Force over LifetimeX
: -20 。 表示粒子在 X 軸方向 持續受到 -20 的力,造成向左的運動。Y
: -5 。 粒子會向 負 Y 方向 持續加速,模擬下墜或重力效果。Z
: 0 。 表示粒子在 Z 軸方向 不受任何外力影響。Space
: World 。 表示所有的力都基於 世界空間,而非粒子系統的局部空間。
Color over Lifetime 模組Color
: 將後段設為透明,讓粒子發射後逐漸變透明。
Size over Lifetime 模組Size
: 指定粒子的大小如何隨著其生命週期從生成到消亡逐漸改變,將它設為一開始小後面變大的曲線,
Collision 模組Type
: World 。 讓粒子會與世界空間中的物理對象(如場景中的碰撞器)發生碰撞,而不是局限於粒子系統本身。Mode
: 2D
Render 模組Material
: 用於指定粒子的材質,從而決定粒子的顯示樣式。
- 需要建立一個 Material ,然後選擇 Sprite-Lit-Default