首页 > 解决方案 > Unity - AddForce() 同时使用 MovePosition() 进行移动

问题描述

我正在开发我的自上而下的游戏,但我被卡住了。我试图让玩家在敌人击中他时被击退(他们的刚体碰撞)。

现在的问题是我正在使用 MovePosition 进行玩家移动,然后当我使用任何会改变玩家 RB 速度的东西(设置速度/AddForce())时,力/速度只会在一瞬间被应用。我认为这是因为我使用了 MovePosition,它以某种方式忽略或重置了速度。

有什么方法可以解决这个问题,而不必让玩家控制基于以最大速度增加力量或计算击退持续多长时间?

很快,我希望击退平稳,因为现在我必须添加一个非常高的力才能获得非常快速(基本上是即时)的运动。

标签: unity3dtopdown

解决方案


尝试重写它,以便物理引擎为您处理一切。您可以尝试使用AddForce和 在“击退”状态下移动对象,您可以将AddForceForce.Impulse用作参数。它应该按预期工作,并且会从你的肩膀上解决运动的问题。


推荐阅读