【问题标题】:How to deal with nested rigidbody?如何处理嵌套刚体?
【发布时间】:2020-12-13 22:13:17
【问题描述】:

我似乎无法理解以下内容,我有一个带有 2 个炮塔的简单宇宙飞船:

我的“玩家”白色飞船有一个刚体。炮塔没有。

我正在通过刚体移动和旋转我的玩家,但我也想通过物理系统旋转炮塔。

我曾考虑在炮塔上添加一个rigidBody2D,但是根据我的在线阅读帖子的理解,不建议这样做。这是因为孩子的刚体会以无法预料的方式影响父母。

所以放弃这个想法,我怎样才能移动我的炮塔并让它受到物理影响?

一些旁注: 我希望炮塔受到物理的影响。假设我尝试旋转炮塔,但它撞到了墙上,我希望它能够抵抗。假设一些碎片击中了我的炮塔枪管,我希望它朝相反的方向移动。

虽然我可以将炮塔移到其父容器(船)之外,但我当然希望它“在游戏中留在船上”。炮塔是船的一部分,如果你愿意,它可以安装在船体或机身上。所以它应该随船移动并保持它的位置。

【问题讨论】:

  • How to deal with nested rigidbody? -> 不要! 如果您需要组合刚体,您应该使用Joints .. 在您的具体情况下可能是HingeJoint
  • @derHugo 您好,感谢您抽出宝贵时间回答我。您能否再解释一下,当使用这种方法时,我的层次结构会是什么样子(船、炮塔等)?我是否应该假设我应该将关节(和 rb)添加到炮塔,并将其连接到船的 rb?

标签: unity3d


【解决方案1】:

正如 derHugo 关节所提到的那样,虽然我不得不进行一些重组,但结果如下:

我添加了一个空变换来容纳船及其子组件,因此炮塔不再是船父级的一部分,因此我现在可以为这些子对象添加一个刚体。

然后我为播放器添加了一个铰链和刚体,瞧,它现在可以工作了:

我仍然需要仔细研究关节是如何工作的,但这似乎有效。

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 1970-01-01
    • 2011-06-18
    • 2016-03-05
    • 2020-05-19
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多