粒子系統 作業與練習

2021-09-29 08:29:17 字數 2646 閱讀 9911

在本次作業中,我使用粒子系統製作了乙個彩虹效果的烟花。

基本步驟

首先,新建乙個空物件halo,並新增子物件,然後加入粒子系統:

然後新建指令碼halo,在指令碼中完成具體粒子效果的實現。

private

particlesystem particlesys;

// 粒子系統

private particlesystem.particle[

] particlearr;

// 粒子陣列

private particleinfo[

] particles;

// 粒子位置陣列

public

gradient colorgradient;

// 粒子顏色改變器

public

int count =

10000

;// 粒子數量

public

float size =

0.03f

;// 粒子大小

public

float minradius =

5.0f

;// 最小半徑

public

float maxradius =

12.0f

;// 最大半徑

public

bool clockwise =

true

;// 順時針|逆時針

public

float speed =2f;

// 速度

public

float pingpong =

0.02f

;// 游離範圍

首先在halo中宣告需要用到的相關變數,包括了粒子系統、陣列、位置陣列以及粒子的數量、大小和半徑範圍等引數。

public

class

particleinfo

}

particleinfo類定義了每個粒子的半徑、角度和時間,方便之後的處理。

void

randomlyspread()

particlesys.

setparticles

(particlearr, particlearr.length)

;}

randomlyspread函式用來賦予每個粒子乙個初始的位置,在一定範圍內隨機生成每個粒子的位置、角度游離時間。我們希望粒子總體集中在平均半徑附近,這樣看起來比較美觀。

// start is called before the first frame update

void

start()

start中初始化粒子陣列和粒子系統,並初始化粒子的位置(呼叫randomlyspread函式)。

void

update()

particlesys.

setparticles

(particlearr, particlearr.length)

;}

update函式用來更新粒子的位置,首先通過設定乙個差分層變數tier將粒子系統分為十層,每一層角度的增量都不相同,這就使得粒子系統的運動更加美觀。clockwise決定旋轉的方向。由於總體是圓形,所以要保證粒子的角度在0-360度之間。此外,還有乙個pingpong函式,使得粒子在乙個半徑範圍內來回地波動。

為了使粒子系統呈現烟花的形狀。我在這裡使用了玫瑰線函式,該函式影象及引數方程如下:

可以通過調整數值來改變葉片的數量。

通過將粒子陣列的position設定為該函式來使得粒子系統呈現烟花狀:

float theta = particles[i]

.angle /

180* mathf.pi;

float x =

10* mathf.

sin(

8* theta)

* mathf.

cos(theta)

;float y =

10* mathf.

sin(

8* theta)

* mathf.

sin(theta)

; particlearr[i]

.position =

newvector3

(x,0f

, y + random.

range(-

1f,1f)

);

最後,建立三個粒子系統,並分別加上紅黃藍三種顏色,將它們疊加在一起,最後就可以看到乙個彩虹色的烟花了:

粒子系統作業

首先,我們需要先來建立粒子,我們新增粒子系統,設定粒子的各引數如下 public particlesystem particlesystem 粒子系統物件 public int particlenumber 5000 最大粒子數 public float pingpong 0.05f public ...

CCParticleSystem粒子系統

第一次接觸粒子系統,以前遊戲裡面的一些小特效,像製作動畫一樣,是採用一幀一幀的切出來的,由於這種特效,變化無常,切出來的幀,都非常的大,也很耗記憶體,一下就記憶體溢位了.呵呵 主要是以前都沒有接觸過.現在接觸了,以後遊戲就可以用到了.開心 建立乙個ccparticlesystem粒子系統 ccpar...

Unity粒子系統

首次接觸unity的粒子系統,內容太多,搞得都不好寫筆記,所以就記錄下unity的粒子系統做出來的東西以及經常用的一些引數。火焰效果製作 這個相對簡單 建立粒子系統物件 1 調duration 1 開啟loop start size 1 start lifetime 1 start speed 1 ...