Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d “网格碰撞器”具有孔所在的墙,这些孔会变形_Unity3d_Blender - Fatal编程技术网

Unity3d “网格碰撞器”具有孔所在的墙,这些孔会变形

Unity3d “网格碰撞器”具有孔所在的墙,这些孔会变形,unity3d,blender,Unity3d,Blender,我需要一个曲线圆柱体对撞机为我的曲线水管模型,以便我的播放器红色立方体可以轻松通过 我尝试了网格碰撞器,但它不起作用,还尝试了另一个技巧,我在blender中构建了两个模型,一个用于网格渲染,一个用于碰撞器。一个整体九块中的一块导致网格碰撞器无法处理整个一个对象检查pic no:1和pic no:5,在将两个模型导出到unity后,我分别在所有9块管道上应用网格碰撞器,以获得完美的结果pic no:5碰撞器的结果外观完美但不工作完美红盒播放器无法通过通过管道 对撞机不允许玩家从另一侧进出,如图所

我需要一个曲线圆柱体对撞机为我的曲线水管模型,以便我的播放器红色立方体可以轻松通过

我尝试了网格碰撞器,但它不起作用,还尝试了另一个技巧,我在blender中构建了两个模型,一个用于网格渲染,一个用于碰撞器。一个整体九块中的一块导致网格碰撞器无法处理整个一个对象检查pic no:1和pic no:5,在将两个模型导出到unity后,我分别在所有9块管道上应用网格碰撞器,以获得完美的结果pic no:5碰撞器的结果外观完美但不工作完美红盒播放器无法通过通过管道

对撞机不允许玩家从另一侧进出,如图所示。我需要一个完美的对撞机为我的曲线管,使我的球员可以很容易地通过。在图一中,我展示了在应用网格碰撞器结果之后。在图2中,我展示了我再次构建模型,但在9个块中,当选择一个块时,你们可以看到,在所有9个块上分别应用网格碰撞器以获得良好的结果。在图5中,我展示了最终的结果,它看起来不错,但没有工作对撞机没有让我的小红盒播放器进入管道并通过它。在图3中,我瞄准了。在图4中,我开火,表示我们的玩家没有进入管道


造成此问题的原因是Unity将网格变成了一个凸形形状,从而从管中移除了孔。它还将顶点计数减少到255个三角形,这是凸面网格的最大值。这就是为什么在第一张图片中对撞机会变形

这里有两个主要选项,因为管本身就是非凸形状

  • 确保在网格碰撞器上未选中
    凸面
    ,并且管上没有刚体。然后,立方体应该能够进入管道。但是,这将意味着其他网格碰撞器将无法与管碰撞。如果您只使用BoxColliders、SphereColliders或CapsuleColliders等进行碰撞,那么这应该可以正常工作

  • 将管分解为一系列凸面形状,并使每个形状成为一个单独的网格碰撞器。那么你现在的处境应该很好

  • 从MeshCollider的文档中:

    凸面-勾选复选框以启用凸面。如果启用,此网格碰撞器将与其他网格碰撞器碰撞**凸网格碰撞器限制为255个三角形**

    未启用凸面的网格碰撞器仅在没有刚体的游戏对象上受支持 组成部分


    完美现在我有另一个问题我取消勾选凸面现在它在工作,但只从外面而不是从里面意味着当我把我们的播放器放在管内播放场景时,播放器不会与管碰撞,它不会停留在管内,它会掉下来,但当我把它放在管内播放场景的顶部时,它会碰撞,然后我回到搅拌机,我做了2管一个用于碰撞器,一个用于网格渲染。我翻转了一个碰撞器的法线,让网格渲染管作为相同的导出到unity并应用相同的,正如你教我的那样,它工作得非常完美,所以翻转法线和取消检查凸面是关键。谢谢。@BakhtyarKhan我很高兴能帮上忙:)别忘了投票,或者点击灰色复选标记,将此答案标记为已接受答案。这有助于其他与你有类似问题的人找到答案,也给了我一些声誉分数;)谢谢你的反馈!声誉低于15的投票将被记录,但不会更改公开显示的帖子分数。:)我是stackoverflow的新手。我发布了另一个问题。你能回答我的新问题吗?需要有经验的人。:)