我想在Unity3d引擎上实现太空游戏。在太空中有一些巨大的宇宙飞船。所以,我希望玩家在失重状态下在太空飞行,但是当他们进入任何一艘宇宙飞船时,他们将受到宇宙飞船的局部重力场的影响(如果它处于On状态)。
我要用addForce()函数来做它,把它应用到太空船地板上的玩家的rigidbodies上。但是使用这种方法,球员只会被放大到地板上,而不会自动站在他们的脚上。
我怎么才能用最好的方式把它们放在脚上呢?
或者,也许有人知道解决这个自定义重力场问题的完全不同的方法?
PS:这将是一个多人游戏,有很多飞船在太空中有不同的方向,其中有很多玩家。每艘船都有自己的重力场。
发布于 2015-09-15 23:54:44
因此,我考虑自己运用重力。只要注意重力是加速度,而不是力。意思是在应用时我使用"ForceMode.Acceleration“。这种加速度可能与当前宇宙飞船的上升方向完全相反。我说的是宇宙飞船的"-transform.up“。我也可以使用同样的向上向量,旋转播放器,使重力感觉正确,也就是。玩家的脚指向地心引力。
发布于 2015-08-19 14:52:48
假设它将是在线多人游戏
您可能会改变客户(本地播放器)的重力。
并禁用网络上其他玩家的useGravity。
这样你就会受到任何方向的重力的影响。
但其他人都会受到“侧”重力的影响。
(假设它们的移动是由客户机而不是服务器或主机处理的)。
这可能会给浮动物体带来麻烦。
如果您现在使用的是一个简单的加法器,那么它可能就足以用于创建或任何对象。
https://stackoverflow.com/questions/32042259
复制相似问题