zoukankan      html  css  js  c++  java
  • 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好了

  • 相关阅读:
    使用bootstrap中的toolTip插件时 最上方提示会被遮挡问题
    Vue中splice的使用
    由于eslint语法检查工具限制很严格,导致启动项目是报错的解决办吧(使用cmder工具时发生的错误)
    windows命令行工具—Cmder配置
    mui触发自定义事件(子页面返回传递给父级页面值)
    计算最长英语单词链
    周总结14
    找水王
    用户体验评价
    周总结13
  • 原文地址:https://www.cnblogs.com/reluctante1/p/12822345.html
Copyright © 2011-2022 走看看