1. 程式人生 > >Unity 粒子系統引數二

Unity 粒子系統引數二

我們繼續下個元件:Limit Velocity over Lifetime 限制粒子速度

這個元件其實沒啥屌用,就是限制粒子發射速度。

(1.Separate Axis:是否限制3個方向的速度。當我們打鉤之後,會有x,y,z三個方向的速度限制。

(2.Speed:總體限制的速度。

(3.Dampen:速度限制倍數。我發現永遠為1,不懂為什麼。

OK,這個元件其實就是為了防止在其他地方修改導致粒子速度過快或者過慢。

進入下個元件:Force over Lifetime 粒子在不同方向受力

這個元件其實就是改變粒子不同方向上的加速度。感覺類似於上面講的兩個元件,這裡我不詳細介紹。

主要應用場景很多,比如噴泉,我們在z方向施加往下的力,類似的場景很多,凡是跟重力相關的都可以用上。

 Color over Lifetime:(粒子顏色隨著生命週期的改變而改變)

這個元件是用來改變粒子顏色,但是這個顏色變化是根據粒子的生命週期而變化的,如下如所示:

我在生命中期的顏色改為紅色,可見粒子發射出來的時候在中間位置顏色變成紅色。

Color by Speed:(粒子顏色隨著速度的變化而變化)

這個元件也是用來改變粒子顏色的,只不過這次是根據粒子的實時速度來變化的。

見下圖:

粒子的速度為5,

1.Color:我選擇在速度範圍的中間設定為紅色。

2.Speed Range:速度範圍。這裡我選擇0-10,那麼粒子的速度落在了範圍的中部,所以整體粒子的顏色改變為紅色。

Ok,接下來幾個元件與上面幾乎一致,分別是:

1.Size over Lifetime:(粒子大小隨著生命週期而變化)

2.Size by Speed(粒子大小隨著速度而變化)

3.Rotation over Lifetime(粒子旋轉方向隨著生命週期而變化)

4.Rotation by Speed(粒子旋轉方向隨著速度而變化)

External Forces:(這個組價我一直搞不懂,但是幾乎沒怎麼用到,先跳過等我研究透了再來寫)

接下來:

Collision:(粒子碰撞效果)

這個元件用來處理粒子與其他碰撞器之間的碰撞檢測。

1.Planes Or World(第一個引數是其他碰撞體型別,

(1-Planes)如果是Planes的話,那麼規定死了,粒子只能與這些Planes,也就是面碰撞,如上圖,我們可以點選+按鈕新增Transform面)

(2-Visualization)視覺化型別,有分Grid和Solid:

  Grid:(網格,在編輯過程中可以看見具體的碰撞器邊界)

  

  Solid(實體),沒有邊界,但是他的實體就是邊界,沒啥差別。

 (3-Scale Plane)面的縮放大小,也就是碰撞器的縮放大小。

 (4-Dampen)碰撞器表面的摩擦力大小。如果大於0的話,表明粒子碰到碰撞器後速度會減少。

 (5-Bounce)彈力。預設為1,如果為0的話,表示不能反彈,那麼就只能沿著碰撞器表面滑行。

 (6-Lifetime Loss)碰撞之後粒子生命週期減少。

 (7-Min Kill Speed)顧名思義。粒子碰撞後如果速度小於這個速度的粒子會銷燬。

 (8-Particle Radius)粒子半徑。

(1-World)如果是World的話,我們可以選擇在世界座標下所有的碰撞的layer來剔除。在引數中多了個Collides With,這裡選擇我們需要的layer。

其他大致引數與上述Planes一致。

Sub Emitters:(自粒子發射器)

分為三個階段:

1.Birth(本粒子出生的時候,那麼子粒子會跟著本粒子出生)

2.Collision(本粒子碰撞的時候,會產生子粒子)

3.Death(本粒子死亡的時候,會產生子粒子)

這裡注意所謂粒子是單個粒子,不是整個Particle System。可能讀者會誤以為整個本體Particle死亡的時候才產生粒子,這裡是個誤區,其實是Particle的單個小粒子。

比如我在出生的搞個子粒子。那麼每發射一個小粒子,會持續產生子粒子,注意持續。因為我沒有在本體粒子Death處理任何事,也就是說本體粒子沒有消亡之前,一直會產生子粒子。

接下來:

Texture Sheet Animation:(序列幀動畫)

這個元件得配合下面的Renderer元件的材質球。因為我們的序列幀圖片是從這裡獲取的。

這裡我搞了個幀貼圖材質,賦給Renderer元件裡面的Material。

OK,我們看下Texture Sheet Animation的引數:

1.Tiles :(這裡是UV座標,其實可以理解為xy分別表示把整張圖切成幾塊,比如x等1,y等2,表示整張圖,x部分整張,y部分被切成兩塊,這樣就表示整張圖被切成上下兩個部分,這樣幀動畫就拿著兩個部分迴圈替換出現,如果x等2,y等2,那麼就整張圖被切成四塊,幀動畫取四塊交替)

2.Animation:(表示取哪個部分做幀動畫)

  (1-Whole Sheet:表示整張圖,根據上面的UV)

  (2-Single Row:單行)比如x=2,y=2就表示兩行,row=0,就交替第一行的圖片,row=1,就交替第二行的圖片。

3.Frame over Time: 在粒子生命週期裡面,播放第幾幀的圖片)就拿上面的來講,總共有4幀圖片,那麼這裡我寫0的話,他會播放第一幀的圖片,寫1的話,播放第二幀的圖片,如果是曲線的話,那麼就會在生命週期裡面,交替出現不同的幀圖片,也就形成了幀動畫。

4.Cycle:在生命週期內迴圈播放次數)基本上為1,特殊情況自己搞。

接下來的元件是與之息息相關的:

Renderer:(渲染元件,就是渲染粒子的材質球)

1.Renderer Mode:(渲染模式)

  (1-Billboard):渲染出來的粒子永遠朝向攝像機,也就是說攝像機無論在哪個角度,他都是表現材質球的正面。

  (2-Stretched Billboard):渲染出來的粒子可以進行縮放,但是沒有正面朝向攝像機。什麼叫正面,就是說他原先發射的粒子什麼方向就是什麼方向。

  

  調整Scale來拉伸粒子,這三個引數隨便改動那個都行。

  (3-Horizontal Billboard):渲染出來的粒子都是水平朝向。

  (4-Vertical Billboard):渲染出來的粒子都是豎直朝向。

  (5-Mesh):渲染出來的粒子的Mesh。注意這個會和Texture Sheet Animation發生衝突。也就是說規定了粒子的mesh之後就不會有幀動畫產生。

  

Ok,剩下的你們自己去理解,看看名字其實就知道咋用。

下節課,我們實戰下,來做個比較好看的整體粒子特效。