沿着宇宙飞船移动的角色 Unity 3d

问题描述 投票:0回答:2

所以本质上我正在尝试制作一款游戏,让角色在宇宙飞船内移动,其想法是这些角色前往不同的区域,在飞船周围执行不同的任务(例如驾驶或操作武器)。

enter image description hereenter image description here

我目前在角色和船只之间的交互方面遇到问题,当玩家移动并开始失控滑行时,船只会受到玩家的影响。这种情况似乎在非常大的质量下发生(在照片中,船是 10000,玩家是 10)。

这就是角色向上移动时发生的情况。 enter image description here

我希望玩家的移动和船只的移动能够半独立地进行,其中角色与船只一起移动,但可以在内部自由移动,而不会真正影响船只。我尝试使用固定接头,但船仍然翻转。

unity-game-engine game-physics
2个回答
0
投票

有几种方法可以解决这个问题:

  1. 你的船不需要刚体,将其删除,这样它就不会移动(只有一个碰撞器需要刚体来检测碰撞,所以让玩家拥有刚体而不是船,我想这就是你的情况)
  2. 您的船舶刚体不需要旋转。在你的飞船刚体中设置约束:冻结旋转 X = true,冻结旋转 Z = true,并且可能冻结旋转 Y = true(取决于情况)
  3. 如果您希望船舶由脚本而不是物理控制,请将其设置为 isKinematic = true。

0
投票

如果采用以下方法,您可以遵循其中一种:

  1. 复制你的宇宙飞船和其中的所有东西,但没有可见的网格。这艘“幽灵船”是静止的,因此您的玩家控制器不会出现任何问题。然后,玩家相对于船只的移动和旋转必须复制到可见的船只中。

  2. 使用关节将玩家刚体连接到宇宙飞船刚体。然后从玩家控制器获取所有输入并手动将玩家移动到船内。

  3. 保持飞船静止,移动宇宙

  4. 忽略 Unity 内置物理控制刚体并自行完成,类似于运动学玩家控制器。

当然还有更多可以想到的解决方案。

您还可以在 Unity Asset store 上查看我的资源,它正好解决了这个问题。

https://assetstore.unity.com/packages/tools/physicals/walk-inside-rigidbody-278159

© www.soinside.com 2019 - 2024. All rights reserved.