宇宙飞船中的玩家

Player in Spaceship

我想在Unity3d引擎上实现space游戏。虚空中有一些巨大的space飞船。所以,我希望玩家在 space 中失重飞行,但是当他们进入任何 space 飞船时,他们将受到 space 飞船局部重力场的影响(如果它在On 州)。
我将使用 addForce() 函数应用于 rigidbodies 玩家朝向 space 船底。但是使用这种方法,玩家只会放大到地板,而不会自动保持站立状态。
我怎样才能最好地让他们站起来?
或者,也许有人知道解决这个自定义重力场问题的完全不同的方法?

PS:这将是一个多人游戏,有许多不同方向的船在 space 中,其中有很多玩家。每艘船都有自己的重力场。

假设是多人联机
你也许可以改变客户端(本地玩家)的重力
并为网络上的其他玩家禁用 useGravity
因此你会受到任何方向的重力影响
但其他人都会受到 "Side".
上设置的引力的影响 (假设它们的移动是由客户端而不是服务器或主机处理的)。
这可能会导致浮动对象出现问题。
如果你有一个简单的 addforce,因为你现在正在使用它可能足以创建或任何对象。

因此我考虑自己施加重力。请注意,重力是加速度,而不是力。意思是申请时我使用 "ForceMode.Acceleration"。该加速度可能与当前宇宙飞船的向上方向完全相反。我说的是宇宙飞船的“-transform.up”。我也可以使用相同的向上矢量来旋转玩家,这样重力实际上感觉正确,也就是。球员脚指向重力。