在 Unity 中导入 Blender,如何生成正确的网格对撞机?

Posted

技术标签:

【中文标题】在 Unity 中导入 Blender,如何生成正确的网格对撞机?【英文标题】:Blender import in Unity, how to generate correct mesh collider? 【发布时间】:2019-06-21 13:30:49 【问题描述】:

如何使用从 Blender (.obj/.fbx) 导出的模型在 Unity 中获取/生成适当的网格碰撞器?

这是我使用 Blender 的第二天,我遇到了障碍。我试过摆弄刚体碰撞,即将“Shape”设置为 Convex Hull,将“Source”设置为 Final/Deformed(Blender 文档指定这两个设置捕获修改器),我尝试过 Unity 中的“Generate Colliders”并且网格对撞机总是如上所示。一个盒子。

如何将网格对撞机分配给确切的网格?我从一个圆圈开始,并使用一个布尔修饰符来创建切口。希望是让网格碰撞器精确地围绕网格,这意味着切口上没有碰撞器。如何做到这一点?

【问题讨论】:

【参考方案1】:

确保您的对象上有一个Mesh Collider 组件,并且具有正确的网格集。注意平面物体的凸参数,因为它有时会失败并给你一个盒子碰撞器。

编辑:

我刚刚注意到您说您使用的是 RigidBody,这意味着您需要设置 Convex。解决这个问题的方法是在 Blender 中制作第二个具有第三维的网格,然后将平坦的网格设置为 Mesh Filter,将厚度设置为 Mesh Collider

【讨论】:

哦。我正在使用 Convex 来查看对撞机。多么愚蠢。这是正确的,我什至没有用简单的打印输出测试它。非常感谢。【参考方案2】:

在导入.obj.fbx 时,选择资产。确保您选择了generate colliders

这里我已经将一个FBX导入unity,但是没有碰撞器。

选择资产,如果你想在网格周围有一个碰撞器,请打开generate colliders

【讨论】:

以上是关于在 Unity 中导入 Blender,如何生成正确的网格对撞机?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Unity 中正确导入 fbx?

如何构建在unity/c#中导入的c++ dll

如何在unity3d发布好的程序中导入外部文件?

为啥从 Blender 导出到 Unity (.fbx) 后动画会这样 [关闭]

材质上的纹理作为空材质导入 Unity3D

如何从 Xcode 中导入的 .dae 中访问混合形状