我想在 Unity3d 引擎上实现太空游戏。虚空中有一些巨大的宇宙飞船。所以,我希望玩家在失重的情况下在太空中飞行,但是当他们进入任何飞船时,他们都会受到飞船局部重力场的影响(如果它处于On
状态)。
我将使用addForce()
适用于rigidbodies
飞船地板的玩家的功能来做到这一点。但是通过这种方法,玩家只会被放大到一层,而不是自动站起来。
我怎样才能以最好的方式让他们站起来?
或者,也许有人知道解决这个自定义重力场问题的完全不同的方法?
PS:这将是一个多人游戏,其中有许多不同方向的飞船,其中有很多玩家。每艘船都有自己的重力场。
问问题
242 次
2 回答
0
假设这将是在线多人游戏
,您可能会更改客户端(本地玩家)的重力并为网络上的其他玩家
禁用,
因此您会受到任何方向的重力影响,
但其他所有人都会受到他们设置的重力的影响“边”。
(假设它们的移动是由客户端而不是服务器或主机处理的)。
这可能会导致浮动对象出现问题。如果您现在使用这些简单的 addforce 可能足以创建或任何对象。useGravity
于 2015-08-19T14:52:48.983 回答
0
因此,我考虑自己应用重力。请注意,重力是加速度,而不是力。应用时的意思是我使用“ForceMode.Acceleration”。这种加速度可能与当前飞船的向上方向完全相反。我说的是宇宙飞船的“-transform.up”。我也可以使用相同的向上向量来旋转玩家,让重力感觉正确,也就是。玩家的脚指向重力。
于 2015-09-15T23:54:44.920 回答