UE4伤害检测的方式

UE4伤害检测的方式,第1张

1.trace capsule或box检测(常用于2d的格斗游戏),multiply适用于对多个对象造成伤害,然而他也会对单一物体造成多次伤害,所以需要用一个数组存储那些未伤害的对象

2.用剑的碰撞体,overlap函数来对对象造成伤害。需要标记什么时候在攻击

3. 精确检测 :动画并不是连续的,而是按帧播放,因此存在一种情况当剑快速划过目标,动画帧的前一帧是剑划过目标前,后一帧是划过目标后,此时碰撞检测就错过了目标。解决方法是在剑身上设置一系列检测点,从上一帧检测点的位置向当前帧检测的位置发射射线检测,击中的目标造成伤害。

攻击事件没有启动。虚幻4模型无法攻击是因为攻击事件没有启动。虚幻4在开始之前,首先设计一下在蓝图中角色的普通攻击是如何实现的:鼠标左键启动攻击事件,攻击事件开始。播放montage,montage中有notify,作用分别是启动攻击碰撞检测,取消碰撞检测,效果类似于伤害帧。如果发生碰撞,通过ApplyDamage对敌人造成伤害。

1.抛物线射线检测

2.绘制抛物线

3.移动角色控制器

抛物线可以被分解成线段,即将连续的点用线段首尾相连表示,“抛物线检测”则使用多次的线段碰撞检测来完成

(1)创建一个继承自ActtorComponent的蓝图作为工具

(2)创建一个Function作为基础算法函数;我们将通过这个基础算法获得轨迹点的列表信息及包含的碰撞检测结果

传入:起点坐标,起点朝向,vector3类型变化量,每段线段长度,默认循环次数,

返回值:碰撞检测所得Hit,检测结果,检测所经历的轨迹点列队

(3)接下来创建对外接口函数

将函数设置为公开函数

一般输入时不需要总改变检测弧线形状颜色等数据,故对外接口只接收起点坐标和朝向即可;

其他有关弧线检测所需的数据均在工具类内使用默认值,如需形状和检测长度理想可自行修改。

返回本次弧线检测的检测结果和Hit信息,给调用者用来做处理

将LaserTool的组件拖拽到之前准备好的角色控制器上

将Floor_Target拖拽到场景并改变其大小;也可多个拼接使用


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11949707.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存