首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >太空船玩家

太空船玩家
EN

Stack Overflow用户
提问于 2015-08-17 03:12:27
回答 2查看 257关注 0票数 0

我想在Unity3d引擎上实现太空游戏。在太空中有一些巨大的宇宙飞船。所以,我希望玩家在失重状态下在太空飞行,但是当他们进入任何一艘宇宙飞船时,他们将受到宇宙飞船的局部重力场的影响(如果它处于On状态)。

我要用addForce()函数来做它,把它应用到太空船地板上的玩家的rigidbodies上。但是使用这种方法,球员只会被放大到地板上,而不会自动站在他们的脚上。

我怎么才能用最好的方式把它们放在脚上呢?

或者,也许有人知道解决这个自定义重力场问题的完全不同的方法?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-15 23:54:44

因此,我考虑自己运用重力。只要注意重力是加速度,而不是力。意思是在应用时我使用"ForceMode.Acceleration“。这种加速度可能与当前宇宙飞船的上升方向完全相反。我说的是宇宙飞船的"-transform.up“。我也可以使用同样的向上向量,旋转播放器,使重力感觉正确,也就是。玩家的脚指向地心引力。

票数 0
EN

Stack Overflow用户

发布于 2015-08-19 14:52:48

假设它将是在线多人游戏

您可能会改变客户(本地播放器)的重力。

并禁用网络上其他玩家的useGravity

这样你就会受到任何方向的重力的影响。

但其他人都会受到“侧”重力的影响。

(假设它们的移动是由客户机而不是服务器或主机处理的)。

这可能会给浮动物体带来麻烦。

如果您现在使用的是一个简单的加法器,那么它可能就足以用于创建或任何对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32042259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档