【Unity】粒子系統實踐:掌握子彈效果的創建與控制

閱讀時間約 2 分鐘

啊,,,,,是這個樣子的,這是我今正在做的東西,

raw-image

目前做到的進度是, unity醬可以上下左右,搭配上timeline預先設定好路線,創造出往前樣子,那第一次寫發射砲彈的東西,就來記錄一下。

子彈(粒子效果)

這邊我還很爛QQ,但網路上有推薦文章,這篇真的介紹的很詳細:

Unity Particle System 粒子系統教學

那我直接從script的地方開始說,因為他是兩個粒子效果(一左一右)。我這邊是宣告一個陣列,並把兩個粒子效果放進去,搭配forEach去達到同時操控的效果。

首先,先告一個陣列

[SerializeField] GameObject[] lasers;

接著回到unity,將粒子效果(左邊)移至陣列(右邊)

raw-image

接著確認觸發的方式(我這邊是使用舊版的input system)

raw-image

那我要使用的是Fire1,觸發方式為left Ctrl。回到script:

下面這種寫法,針對每一個武器,直接將他開起/關閉

private void setActiveLaser(bool isActive)
{
//這樣寫是針對整個粒子效果開啟
foreach(GameObject i in lasers) i.SetActive(true);
}

但這邊要釐清,針對“子彈射出去“包括了”發射“還有”粒子本身“。但這種關閉,是將兩個一起關閉,就是你不止停止發射,射出去的子彈也瞬間消失(消失的子彈???)。

但我們要的應該是”停止發射“的這個動作,所以要稍微改一下:

private void setActiveLaser(bool isActive)
{
//這樣寫是針對整個粒子效果開啟
//foreach (GameObject i in lasers) i.SetActive(isActive);

//針對粒子效果的emission去開啟
foreach (GameObject i in lasers)
{
var item = i.GetComponent<ParticleSystem>().emission;
item.enabled = isActive;
}

}

這樣就幫unity醬裝好發射武器摟~

raw-image

🥰以上是本文所分享的內容。如果您發現任何錯誤或遺漏,請不吝賜教。



3會員
10內容數
留言0
查看全部
發表第一個留言支持創作者!