首先在武器的結構體中添加一個代表武器攻擊范圍的變量
設置上各武器的攻擊距離(ps.ue4里的默認單位是厘米,如圖長矛的攻擊距離是200cm)
讀取當前武器的距離,發射相應長度的射線用於判定。
在播放聲音之前新建一個動畫通知,用於通知該發射判定射線了
然后把長矛的其他兩個藍圖也加上同樣的動畫通知。
在動畫藍圖的事件圖表中寫入邏輯。
當my attack front被觸發時,獲得角色的武器,如果存在,就發射一個Sphere 的射線(跟line的不同在於有半徑,是個膠囊體)
獲得player的camera,以location作為射線的起點,長度為當下weapon的distance。
上圖把半徑設成了20,下圖為測試效果
這個是匕首和長矛攻擊距離不同的示例
另,把player提升為了變量,這樣每次調用角色的屬性就不用來這里找了。
可以把這一堆的攻擊射線檢測打包成一個函數,畢竟后面要經常調用。
記得要返回射線檢測的兩個輸出。
長矛大概就這樣,都是向前攻擊的。
然后做長劍的。長劍有左右攻擊之分。
新建兩個動畫通知,attackLeft和attackRight
這里用的是一個盒型的射線檢測(還要一種是mutibox,可以檢測多個目標,現在這個只能檢測一個目標)
與之前射線不同的是他需要輸入Half Size作為參數,用來控制盒子的大小,還需要玩家的旋轉值作為盒體的朝向。
測試是這個樣子
然后打包。
既然有了盒型射線檢測,那么不如把向下劈砍的動畫也設成一個豎直盒型的檢測。
新建一個動畫通知。並且在原有AttackLR基礎上修改盒子的數據(調換一下y和z 的值就行)
最后一個小匕首,都設成front好了