Unity C# | 子彈射擊與命中的思路

更新於 發佈於 閱讀時間約 5 分鐘

一、前言

  這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。

二、思路

  僅撰寫思路的原因,主要有兩個方面,第一個是撰寫思路的文章更容易傳載到其他平台,並且因為不包含實作,能更快速的介紹設計思路;第二個是撰寫思路的文章應用更廣,2D或3D遊戲均適用,只要有射擊的要素就能參考。

1. 撰寫便捷

  本文主要有兩種類型的讀者,第一種讀者是遊戲設計的門外漢,對於遊戲設計好奇,想知道該遊戲會怎麼設計;第二種讀者是遊戲設計精熟,相較於看影片模仿,更希望自行研究或快速閱讀參考。

  對於遊戲設計入門或好奇者,本文建議尋找專業的 Youtube 影片,跟隨影片步驟進行遊戲程式撰寫,會比閱讀文章更高效且明確,也不用因此擔心自己是否做錯,是更加高效的學習方式。

2. 應用更廣

  無論是2D遊戲或3D遊戲,子彈設計都需要這些要素,射擊子彈並非單純的把子彈射出即可,還要包含初始化、初速度、命中角度,除此之外還需要準備兩種製作好的素材,因此能藉由思路學習射擊的要素。

  本文結合第三人稱射擊遊戲官方素材包與Youtube教學為雛型,結合作者自行購買的子彈特效素材包中的子彈程式,撰寫成思路作為紀錄,並分享給任何對射擊遊戲有興趣的人閱讀。

三、子彈射擊

  本文章將會從準備物件到子彈三個階段進行介紹,準備的物件包含子彈、特效、位置;子彈三階段包含發射、飛行、命中,本文章不包含事後計算與音效。

1. 準備子彈物件

  第一個要準備的東西,是子彈的物件,此物件為一個預製物(Preferb),其包含子彈的碰撞體、剛體、自身攜帶的特效,依據子彈是否要拋物線,決定是否啟用引擎自帶重力。

  若子彈物件有可能命中玩家,請在遊戲中的玩家與預製物中設定標籤,並在專案設定(Project Setting)中讓此兩個標籤不會相互碰撞,這樣可以防止子彈在發射的當下就命中玩家。

2. 準備命中特效

  當子彈命中物體時,會需要使用標籤(Tag)或組件(Component)或介面(Interface)來判斷命中的對象是否為目標物件(敵人、背景、玩家),並觸發對應的音效與特效。

  當子彈命中後,要觸發特效,如果此特效為爆發式或有明確方向,其爆發噴射方向建議為Y軸正向,也就是在預製物視角中,爆發方向要朝正上方進行粒子特效的播放。

3. 準備射擊位置

  如果發射子彈的主體是玩家,那就要決定在玩家的哪個位置發射,將其遠離玩家一小段距離,讓其發射子彈時不會直接命中玩家,並且依據遊戲需求決定玩家移動與轉向是否會改變射擊位置。

  目前我在撰寫第三人稱射擊遊戲時,有遇到的一個狀況為因為子彈是往鏡頭的正前方發射,所以在非瞄準的情況下,玩家射擊會命中玩家,因此要用程式去控制射擊位置,或讓子彈不會命中玩家。

4. 子彈發射

  當我們按下發射按鍵後,會在射擊位置生成一個子彈,此子彈的方向與預製物中的方向相同,因此要設定此子彈的正前方為發射方向的正前方,並讓子彈自己往正前方前進。

  如果遊戲中玩家與敵人都會發射子彈,使用物件池進行物件生成與控管是更好的程式撰寫方式,除了節省資源以外,還可以讓廢棄資料減少。

5. 子彈飛行

  當子彈被射擊出去以後,此時會噴射粒子特效。如果遊戲需要讓子彈在飛行的過程中有所變化,可以讓子彈的維持預設的剛體模式,能運用給予範圍內的物件推力營造輕物件飛行的飄逸感。

6. 子彈命中

  當子彈命中的時候,會需要計算傷害與觸發回饋,通常粒子特效都都有方向性,因此要確定命中的面,並讓粒子特效的爆發方向為命中面的正前方,這樣能讓子彈命中的回饋更確定。

  關於傷害計算,可以參考我之前撰寫的一篇文章,在最後有附相關的教學影片可以觀看,裡面有使用介面(Interface)進行傷害系統的撰寫。

五、後記

  這篇文章寫起來其實蠻花時間,不過也相當有成就感就是了,子彈射擊與命中是最近撰寫遊戲的內容,所以想了想就撰寫成文章了。

留言
avatar-img
留言分享你的想法!
avatar-img
瓶裝雪的沙龍
108會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
瓶裝雪的沙龍的其他內容
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
啊,,,,,是這個樣子的,這是我今正在做的東西, 目前做到的進度是, unity醬可以上下左右,搭配上timeline預先設定好路線,創造出往前樣子,那第一次寫發射砲彈的東西,就來記錄一下。 子彈(粒子效果) 這邊我還很爛QQ,但網路上有推薦文章,這篇真的介紹的很詳細: Unity Part
Thumbnail
啊,,,,,是這個樣子的,這是我今正在做的東西, 目前做到的進度是, unity醬可以上下左右,搭配上timeline預先設定好路線,創造出往前樣子,那第一次寫發射砲彈的東西,就來記錄一下。 子彈(粒子效果) 這邊我還很爛QQ,但網路上有推薦文章,這篇真的介紹的很詳細: Unity Part
Thumbnail
這篇文章將會講述物件池的基本概述,並介紹應用方向。
Thumbnail
這篇文章將會講述物件池的基本概述,並介紹應用方向。
Thumbnail
這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。
Thumbnail
這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。
Thumbnail
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
Thumbnail
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
Thumbnail
這篇文章將會介紹我對於遊戲企劃師,有哪些理解以及自學的幾條方向。
Thumbnail
這篇文章將會介紹我對於遊戲企劃師,有哪些理解以及自學的幾條方向。
Thumbnail
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
Thumbnail
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
Thumbnail
我最近在嘗試紀錄遊戲的遊玩紀錄,未來這會成為企劃的資料庫,在遊玩一定次數以後,我打算撰寫遊戲分析,同時這篇文章也會隨之持續更新。
Thumbnail
我最近在嘗試紀錄遊戲的遊玩紀錄,未來這會成為企劃的資料庫,在遊玩一定次數以後,我打算撰寫遊戲分析,同時這篇文章也會隨之持續更新。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News