【问题标题】:Unity 3d: Prevent Rigidbody from Falling OverUnity 3d:防止刚体倒下
【发布时间】:2015-08-17 16:56:25
【问题描述】:

我有一个 3d 对象(军人),我添加了一个刚体。我有一把枪,可以向军人发射子弹——当子弹击中它时,我希望它倒下。现在我遇到了一个问题,我的游戏一开始,我的 3d 对象就会在没有任何用户交互的情况下慢慢倒下。我在 RigidBody 上设置了 X 和 Z 冻结位置,但它仍然倒下。如果我设置在 Y 位置冻结,我的 3dObject 不会倒下,但如果我射击军人,它只会旋转而不会倒下。我附上了一个截图来显示我的所有设置。

【问题讨论】:

标签: unity3d gravity rigid-bodies


【解决方案1】:

您的Collider 的网格显然是站在一个点上,看起来很不稳定。要么给他一个BoxCollider,要么做一个高长的矩形,在它上面附加一个Collider和一个RigidBody,然后让军人网格化它的一个孩子。从军人网格中移除所有对撞机和刚体。

【讨论】:

  • 我尝试添加 Box Collider,但子弹刚刚反弹,而军人并没有摔倒。然后我尝试创建一个矩形(立方体),然后添加小时候的军人......军人最初并没有摔倒,我能够射击并将其撞倒,但我需要立方体是透明的,没有军人是透明的。
  • 是的,只需删除框的MeshRenderer 组件
  • 老实说,您所要做的就是给它一个BoxCollider,并在检查器的BoxCollider 设置中,您可以调整大小以使其成为一个高矩形。它基本上是一样的,但没有创建一个新的GameObject。之前不工作的原因是因为它很难让子弹击倒立方体,它必须是矩形的,最好是头重脚轻的。
  • 是的,移除盒子的 MeshRenderer 组件就成功了。我希望命中区域尽可能准确,这样 BoxCollider 可能对我不起作用——这就是为什么我最初在军人身上安装了 Mesh 对撞机——为了提高准确性,但我就是无法让他站起来.谢谢
  • 为什么不使用军人的实际网格作为MeshCollider?你的网格完全不同
【解决方案2】:

在刚体中,您还可以选择冻结围绕某个轴的旋转:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多