UE4_攻击伤害1_射线检测

首先在武器的结构体中添加一个代表武器攻击范围的变量

 

 

设置上各武器的攻击距离(ps.ue4里的默认单位是厘米,如图长矛的攻击距离是200cm)

 

 

读取当前武器的距离,发射相应长度的射线用于判定。

在播放声音之前新建一个动画通知,用于通知该发射判定射线了

 

 然后把长矛的其他两个蓝图也加上同样的动画通知。

 在动画蓝图的事件图表中写入逻辑。

当my attack front被触发时,获得角色的武器,如果存在,就发射一个Sphere 的射线(跟line的不同在于有半径,是个胶囊体)

获得player的camera,以location作为射线的起点,长度为当下weapon的distance。

 

 

上图把半径设成了20,下图为测试效果

 

这个是匕首和长矛攻击距离不同的示例

 

 

另,把player提升为了变量,这样每次调用角色的属性就不用来这里找了。

 

 

可以把这一堆的攻击射线检测打包成一个函数,毕竟后面要经常调用。

记得要返回射线检测的两个输出。

 

 

 

 

 长矛大概就这样,都是向前攻击的。

然后做长剑的。长剑有左右攻击之分。

新建两个动画通知,attackLeft和attackRight

 

 这里用的是一个盒型的射线检测(还要一种是mutibox,可以检测多个目标,现在这个只能检测一个目标)

与之前射线不同的是他需要输入Half Size作为参数,用来控制盒子的大小,还需要玩家的旋转值作为盒体的朝向。

 

 测试是这个样子

 

 

然后打包。

 

 

 

既然有了盒型射线检测,那么不如把向下劈砍的动画也设成一个竖直盒型的检测。

新建一个动画通知。并且在原有AttackLR基础上修改盒子的数据(调换一下y和z 的值就行)

 

 

 

 最后一个小匕首,都设成front好了

 

posted @ 2020-05-03 20:39  vantablack  阅读(2280)  评论(0编辑  收藏  举报