這是UC武器系統的類結構圖,我不會每一種武器都講,只會分析刀及CharGun實現,由於其它都是相似的。動畫
UCWeapon是武器系統的根類,它不會作具體的事情,它只有兩種行爲,一種是BaseAction,另外一種是AltAction,要理解這兩種Action,能夠考慮槍。槍是一種既能夠近戰又能夠遠戰的武器,射擊就是BaseAction,用槍托砸人就是AltAction,這兩種Action不可能同時出現,所以有blog
BaseActionInternal及AltActionInternal來控制,因此UCWeapon在Tick(Update)裏就作一件事情,不斷的檢查玩家是否能夠作出BaseAction及AltAction,事件
UCWeapon的BaseActionget
首先檢查可否執行武器的BaseAction,若是能夠獲取武器的骨架系統播放Montage動畫,而後執行PrivateBaseAction,設置BaseAction的時間長度,這裏就着重談一下爲何要播放Montage,這時由於不一樣的武器行動的時候,它們的動畫是不一樣的,刀攻擊的時候得前進吧,槍攻擊的時間得有一個槍口上仰的動畫吧,但這些只有具體的子類才知道,UCWeapon是不會知道的it
對UCWeapon瞭解以後,就能夠分析簡單的武器刀了,io
當玩家左鍵刀攻擊時,父類UCWeapon播放了刀的動畫,有趣的事情就發生了,UCWeaonKinfe自己是不知道玩家攻擊了這種事情的,但有趣的是刀在每一幀的Tick事件裏去檢查了刀的攻擊動畫是否有播放,bfc
若是有播放就說明攻擊了,那這把刀真的能傷人嗎?未必,刀傷人與刀沒有半毛錢的關係,date
對着刀的模型圖,就能看出來是從刀柄到BlageTop發處一條線,若是有碰到什麼東西就認爲是攻擊到了,若是碰撞到了東西,且這個東西能轉換爲Bot怪,就通知Bot怪,你被攻擊了,關於AI的之後會再講;若是轉換Bot怪失敗就認爲是碰到了牆,就會給它一個力,及一些毀壞,若是它支持物理效果就會看出來了im
刀的分析就結束了d3