啊,,,,,是這個樣子的,這是我今正在做的東西,
目前做到的進度是, unity醬可以上下左右,搭配上timeline預先設定好路線,創造出往前樣子,那第一次寫發射砲彈的東西,就來記錄一下。
這邊我還很爛QQ,但網路上有推薦文章,這篇真的介紹的很詳細:
Unity Particle System 粒子系統教學
那我直接從script的地方開始說,因為他是兩個粒子效果(一左一右)。我這邊是宣告一個陣列,並把兩個粒子效果放進去,搭配forEach去達到同時操控的效果。
首先,先告一個陣列
[SerializeField] GameObject[] lasers;
接著回到unity,將粒子效果(左邊)移至陣列(右邊)
接著確認觸發的方式(我這邊是使用舊版的input system)
那我要使用的是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醬裝好發射武器摟~
🥰以上是本文所分享的內容。如果您發現任何錯誤或遺漏,請不吝賜教。