角色的击飞效果的实现

对应了个 击飞效果的游戏需求
有个 问题不知道怎么破 求大佬们帮忙下
角色身上有个 高1300 宽500 的胶囊体,在角色被击飞的时候,会出现 身体的一半嵌入墙上的问题,解决方法如下,击飞过程中,从起飞点到一帧的移动终点之间做胶囊体的射线检测

向量坐标 = 撞击点坐标 - Actor的坐标
向量的反方向 = Actor的坐标 - 撞击点
向量的反方向 = 向量的反方向.GetSafeNormal() * 胶囊体的半径
Acto的新坐标 = 向量坐标 + 向量的反方向
通过上面的逻辑 可以实现 在角色后退过程中碰到墙壁的时候,避免角色嵌入到墙上的BUG
但是,有个问题是 角色只能站立姿态的时候才能实现上面的效果。如果角色是躺着被击飞撞墙的情况。就还会嵌入墙上
如何才能算出 实现 根据击飞方向和角色的现在的Pith的值,重新设置角色身上胶囊体的半径

最终移动角色你用的”set location“?

换成“launch character",虚幻自带的”弹射角色“,就不用自己考虑模型的碰撞穿模问题了。

你可以做一个预算值,先计算角色飞出去落地的位置,然后再飞过去