UC武器系統之槍與子彈

 

1.

UCWeapon與UCWeaponRanged武器的本質區別是後者是須要子彈的,也就意味着後者在可否BaseAction時須要檢查玩家的是否有彈藥動畫

image

刀是經過檢測是否播放動畫能知道本身是否應該攻擊,但槍就不行了,由於槍在攻擊以前是要把子彈刷出來的,所以UWeaponRange的BaseAction通知UCWeapon的PrivateBaseAction事件,具體武器重寫這一事件,具體到UCWeaponCharGun是這樣的blog

image

PrivateBaseTion事件裏CharGun先刷出Projectil,再刷出UCShell,而後就無論了,畢竟槍的BaseAction是發出子彈,子彈才能傷怪,而不是槍事件

2彈殼的分析

子彈的實現是分紅了彈殼(UCShell)與子彈(UCProjectil)的,get

UCShell模型it

image

彈殼的主要做用是模仿彈殼的彈跳,它最多彈跳6次,就消失了io

image

這一大片的代碼都是爲了給Shell設置旋轉及速度的,一個東西想要運動及旋轉起來,UC的做法是給它加上for循環

image

3子彈分析

子彈的核心是Hit事件,整體的邏輯是若是子彈沒有打中bot怪,就對擊中的物體模擬一個物理效果,並生成一個彈孔,若是擊中了就由Bot怪的Hit事件處理,子彈就不理會了bfc

image

imageimageimage

這時再回到CharGun,刷子彈的過程,首先是在槍口處給一個火焰粒子特效,模擬真實的槍循環

image  image

而後刷子彈,並禁止子彈傷到本身,im

image

最後是把彈道畫出來,這個效果是在運動中才能看出來

imageimage

最後談一談ShotGun的子彈,散彈槍子彈就是一顆子彈包含了多顆子彈而已,只須要在一個for循環裏多刷幾發子彈就行了,

image

 

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

相關文章
相關標籤/搜索