您好,登錄后才能下訂單哦!
大家在玩游戲的時候,經常會看到各種技能特效,遠近***,非常絢麗,角色的打擊感非常吸引玩家,其實這就是我們通常說的戰斗技能系統,大家如果第一次去實現這個戰斗系統,可能感覺無處下手,再被策劃的文案一搞,云里霧里,在這里我就跟大家簡單的說一下如何架設技能系統。
在實現戰斗系統的時候,首先大家思路一定要明確,知道如何去架設,在不知道如何實現不要忙于寫代碼,想清楚了再寫。
那現在我們假設實現一個槍戰的戰斗系統,首先會有各種***,***發射的***是不同的,決定了他的破壞程度是不同的,這就涉及一個***與被擊打物體的特效。那我們如何去設計?
先給大家看一下已經實現的效果圖:
接下來我們開始架構我們的技能。
首先我們針對武器和破壞,這兩個設計兩個基類,為的是擴展不同的武器,以及擴展不同的破壞程度。
代碼如下:
以上是Damage的基類我們定義了四個參數,一個是釋放的特效,第二個是自己,第三個是破壞程度,第四個是破壞的目標。
我們的破壞類就要繼承于這個基類方便擴展,比如我們的設計代碼是這樣的:
首先要有判斷是否爆炸,以及爆炸的半徑,破壞力度,激活時間等,只要一旦涉及到力度,大家應該立刻想到使用Rigibody這個剛體插件。當然這個函數里還有破壞的函數,在這里需要有一個碰撞體檢測,就是說×××碰到需要破壞的物體需要根據其碰撞體進行檢測。
我們需要根據碰撞體去檢測是否發生了碰撞,通過OCollisionEnter進行判斷碰撞體是否發生了。
為了調用方便我們實現了一個DamageManager管理類
用于判斷其是否死亡。
接下來我們需要設計武器基類:
這上面也有一些參數,目標,速度軸等吧。那么我們武器的實現也是繼承這個類。
武器系統的設計就完成了,接下來我們需要設置武器控制類
用于發射武器,同時我們需要武器發射類,對于這個類的設計,我們也將其繼承于武器基類,其實這個可以獨立實現:
爆炸的時候,需要涉及到特效的使用,如果整個都是粒子的話,我們不需要腳本控制,如果不是粒子我們需要腳本控制,也就是爆炸類:
爆炸類需要綁定到特效上的,一個簡單的武器系統就完成了。其實復雜的技能系統只是按照這個思路進行擴展,簡單的技能系統實現了,復雜的也不會遠了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。