Unity中Mesh Collider无法与对象碰撞(2D游戏)问题求助
碰撞体失效的原因及解决办法
- Mesh法线方向异常:虽然你在Blender里看到蓝色是外侧,但导入Unity后法线可能被翻转,凸碰撞体对法线朝向很敏感。选中Unity里的Mesh对象,在Inspector的
Mesh Filter组件下,点击Mesh字段右侧的小齿轮,选择Recalculate Normals,强制统一法线方向。 - Mesh存在无效面:SVG转Mesh时容易生成极小的退化面、重叠面,这些会干扰凸碰撞体的生成逻辑。回到Blender,进入编辑模式,按
X选择退化面删除,再用合并顶点(按M选距离,设一个极小阈值)清理冗余顶点,重新导出导入。 - 凸碰撞体顶点数超标:Unity的凸Mesh Collider最多支持255个顶点,超过的话会自动裁剪,结果可能就是碰撞体完全失效。在Blender里给Mesh加个
简化修改器,调整比率降低顶点数,确保导入后顶点数在255以内(Unity里选中Mesh,Inspector里能查看顶点数)。 - 未应用Blender里的变换:如果Blender里的Mesh没应用缩放/旋转(Ctrl+A选
缩放/旋转),导入Unity后本地缩放会异常,碰撞体无法正确贴合Mesh。先在Blender应用所有变换,再重新导出FBX/OBJ格式文件。 - 图层碰撞设置冲突:检查碰撞体所在图层和其他对象的图层,在
Edit > Project Settings > Physics里的Layer Collision Matrix中,确认两个图层处于允许碰撞的状态。
内容的提问来源于stack exchange,提问作者Jerry
相关产品推荐
相关产品推荐

