在本次作業中,我使用粒子系統製作了乙個彩虹效果的烟花。
基本步驟
首先,新建乙個空物件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 ...