【问题标题】:Unity - How to keep car speed on slants?Unity - 如何保持车速倾斜?
【发布时间】:2021-08-24 20:04:07
【问题描述】:

我正在制作一款汽车游戏,使用 Kenney 的汽车和城市道路网格。一切都很好,除了倾斜的汽车。我认为这更像是一个逻辑问题而不是代码......

当你想到物理和重力时,我面临的行为是“正常的”:当我的车试图爬上斜坡时,它会减速,而当我的车试图爬下斜坡时,它会加速.

但我想要一个更卡通/非现实的物理,当汽车倾斜时保持汽车的速度。

由于我使用 WheelCollider 来处理汽车的运动,我认为我需要根据方向(向上或向下)增加/减少倾斜的电机扭矩,但无法找到最佳方法。 . 这只是一个想法,可能非常非常非常错误。

那么,有人可以帮我解决这个问题吗?

谢谢大家!

【问题讨论】:

  • 如果您在车辆上禁用重力会发生什么?我可以稍后尝试,但很好奇。
  • @ps2goat 在车辆上禁用重力会使汽车无限远,哈哈哈......当尝试爬上时,汽车会向上倾斜并且无法下降,当尝试爬升时爬下来,就是不能下来

标签: c# unity3d game-physics


【解决方案1】:

由于您使用的是 WheelCollider,我假设您正在使用 Unity3D 的物理系统来让您的汽车行驶。如果您希望每辆车在不加速和减速的情况下对斜坡做出一致的反应,我相信物理系统会阻止您轻松做到这一点,并且您可能有更好的时间编写自己的汽车运动系统。

然而,如果你想继续使用 Unity 物理系统,我会说重力是导致你的运动不一致的原因。

解决方案是将您的车辆重力与世界空间重力分开。

当你的车离地面足够近时,你可以相对于汽车的方向施加向下的重力,因此汽车会附着在它行驶的表面上。

如果汽车没有接触到地面或离地面太远,您可以重新应用世界空间重力以确保汽车确实落下,无论其方向如何。

【讨论】:

    猜你喜欢
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 2023-03-09
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多