UE4-根据移动方向改变移动速度

UE4-Changing movement speed depending on the direction of movement

我有第三人称角色。我使用控制器所需的旋转来使用鼠标旋转角色,就像在 PUBG 等中一样。当我前进时如何更改最大步行速度?例如,当我向前走时,我的速度必须是 500,但当我向右或向后走时,我的速度必须是 250。如何检测到这一点?我当然可以在输入轴事件上添加 if-s,但我的游戏是多人游戏,如果我每次检查并更改速度,这会降低性能。怎么正确解决?

我可以为蓝图提供解决方案,但我不能确定它是否适合您的情况。

关键是将运动输入添加到玩家角色的前向向量中。请参阅下面的屏幕截图。

AxisValue 输入事件的 MoveForward 输出在您向前按时为 +1,在您向后按时为 -1。

如果你的步行速度是 500,那么上面的 AddMovementInput 会在玩家面对的方向上增加 500 移动,乘以 1。

下面那个加500移动,乘以-1乘以0.5,这会让你以一半的速度向后(从技术上讲,向前是负值)。

您可以将相同的逻辑应用于 MoveRight 输入。

PS 如果您使用的是模拟控制器,我假设 AxisValue 将在 -1 到 1 的范围内,但这不会改变逻辑以上。