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好了