UC分析-武器系統之子彈獲取

UC的主角是一個左手拿刀,右手拿槍,自帶時間控制BUFF的高手,有槍就得有子彈,UC中獲取子彈有三種方式函數

LevelBP裏設置子彈翻譯

image

撿起ShotGun時會給兩發子彈,最經常使用的是在一個箱子裏呆着,會最高給3發子彈,3d

image

這也是要分析的一種給子彈方式,這個盒子是一個普通的BP,帶有一個Volume在層次結構上,這樣就能夠檢查玩家是進入與離開blog

image

EventGraph裏處理了幾個事件,BeginOverlap/EndOverlap/Tick,事件

image

BeginOverlap事件最重要的是設置CharInVolume爲true,這樣Tick事件裏纔會認爲玩家在box裏,EndOverlap事件對應就是清掉這個標誌字符串

Tick事件,主要就是作三件事,把Box裏的子彈數目繞向玩家、加子彈、處理時間效果,這裏只介紹加子彈get

image

加子彈的條件時Box沒有被destroy及玩家在box裏,其次是檢查子彈是否已經加滿,默認是加3顆數學

image

最後玩家必須要待上一段時間才能加子彈,it

image

上面這段BP代碼翻譯成數學是這樣一個公式(delta / GTD + AT) > AI若是爲真就加子彈,通俗一點的話說就是假設1秒鐘加子彈,那玩家在每一幀都會累計AT的值,當大於AI時就加子彈了io

image

而後就是調用character裏的函數AddAmmoToGun,ActionCounter加1 ,AT清0繼續累計,盒子的彈藥數量減1並顯示,

MyCharacter的函數AddAmmoToGun,

image

很清楚,它是調用範圍類武器加子彈,但這裏關心的是通知了AddAmmoEvent事件,這個事件是用來通知玩家頭上的TextRender顯示一些提示性文字的

最後就是HUD裏是怎麼顯示彈藥的,

image

這時由於UMG裏控件綁定一個GetText0函數

 image

GetText0從玩家身上獲取彈藥,而後就是拼裝字符串

image

 

-----------轉載請標明出處

相關文章
相關標籤/搜索