GameDevStory 5.

怎么了中! 好久不见了,不是吗? 😀

这几周我一直很沮丧,所以我休息了。 实际上,我在加拿大申请了很多公司,但是我失败了。 我想提高自己,但无法获得任何反馈。 我自己很困惑,它从没有帮助过我。 这个事实使我沮丧。

我以为我找不到工作的主要原因可能是签证,所以我终于在韩国找到了工作(向学生教编程!),但仍然尝试获得加拿大的工作许可。

无论如何! 这是我目前的状态。 让我们转到我实现的Blink Skill。

什么是眨眼?

眨眼,眨眼! 瞬移与瞬移相同。 借助眨眼技能,我们可以立即传送短距离。 您可以在LOL或《守望先锋》中找到这项技能。

我如何实施?

如您所知,我正在使用UE4(尤其是Blueprint)开发游戏。 并且在Blueprint中嵌入了隐形传送功能。 它支持清扫以停止运动,直到它与其他物体碰撞为止。

但是我不想扫地。 我只是想放置我的角色,即使在原点位置和目的地之间有些东西。 我只考虑目标附近的物体,因此它可能与我的角色碰撞。

所以,让我们安排我想做的事。 眨眼技能的过程必须是

  1. 用传送功能放置角色
  2. 如果目的地中还有其他物体与我的角色相撞,
  3. 解决这个问题。 请放置您的角色NAHHHHH !!!

第一次尝试:向后扫。

我在目的地检查碰撞。 如果没有碰撞,那很好,我只是将角色放在那个位置。 但是,如果发生碰撞,我会开始从目的地扫向原点。 与UE4的扫描相反,它们从始发地流向目的地。

但是仍然有问题。 此功能无法解析连续的对象。 它只是返回碰撞的边缘。 我的意思是,在跟踪过程中,碰撞完全结束时我不知道。 例如,如果连续存在墙壁,则使用此功能,我的角色将仅传送到第二堵墙的边缘并被卡在两堵墙之间。

第二次尝试:螺旋碰撞检查

此技能是由LOL的技能所激发。 幸运的是,我在LOL的补丁说明中发现了他们如何实现闪烁技能。 没有详细说明,但他们告诉他们进行螺旋碰撞检查。

我还在以前的版本中开发了螺旋碰撞检查。 但是我认为这种方法可能不好,因为它的性能很差。

但是眨眼技能的冷却时间很长,不需要第二次计算时间。 这样的性能可能是可以忽略的。

这是我的伪代码,

 度= 0; 
半径= 0;
而(true){
radius + = radiusIncrement;
对于度= 0〜360 {
点=目的地+半径*向量(cos(度),sin(度));
如果(CollisionTest(point)){
将角色位置设置为指向。
返回;
}
}
}

然后我将其转码为Blueprint。 我认为很难捕获蓝图……它太大了!