unity3d - Unity - AddForce() 同时使用 MovePosition() 进行移动
问题描述
我正在开发我的自上而下的游戏,但我被卡住了。我试图让玩家在敌人击中他时被击退(他们的刚体碰撞)。
现在的问题是我正在使用 MovePosition 进行玩家移动,然后当我使用任何会改变玩家 RB 速度的东西(设置速度/AddForce())时,力/速度只会在一瞬间被应用。我认为这是因为我使用了 MovePosition,它以某种方式忽略或重置了速度。
有什么方法可以解决这个问题,而不必让玩家控制基于以最大速度增加力量或计算击退持续多长时间?
很快,我希望击退平稳,因为现在我必须添加一个非常高的力才能获得非常快速(基本上是即时)的运动。
解决方案
尝试重写它,以便物理引擎为您处理一切。您可以尝试使用AddForce
和 在“击退”状态下移动对象,您可以将AddForce
其Force.Impulse
用作参数。它应该按预期工作,并且会从你的肩膀上解决运动的问题。
推荐阅读
- vb.net - 如何在 Vb.net 中使用函数返回多个值
- security - 利用打开的 UPnP 端口
- c# - 导出 gridview 数据时的随机 HTML
- python - 如何在 Tkinter 中清除坐标?
- reactjs - React 路由器配置中 HoC 的 Typescript 类型
- derby - Apache Derby 无法删除数据库中的记录,因为没有足够的时间
- c# - 完全设置 .NET Core Web API 以使用 Azure AD 身份验证
- typescript - 如何使用记录键作为函数 arg 类型的索引?
- redis - 如何在 Windows 7 上的命令提示符下从 Redis 客户端的输出中漂亮地打印 json 字符串?
- mysql - 没有root权限可以通过ansible安装和配置MariaDB吗?