Blender复制粘贴模型在Unity实例化后损坏,拖拽导入正常
问题分析:实例化模型缺失部件的原因
现象对比
- 正常箭头:拖拽到游戏窗口的同模型,渲染完全正常
- 损坏箭头:通过代码静态实例化的模型,箭头头部缺失
实例化代码
GameObject obj = new GameObject("Arrow", typeof(MeshFilter), typeof(MeshRenderer));
模型背景
缺失的箭头头部是在Blender中通过复制粘贴创建:先用立方体制作箭头头部,复制后关联对象并绘制箭杆。这类模型在Blender到Unity的导入流程中本身易出现问题。箭头头部是确实缺失而非不可见,首次尝试时曾短暂看到它被拉伸覆盖地形。已为对象应用Delta缩放,并使用FBX全选项导出。
已尝试的无效方案
- 启用背面剔除
- 替换箭头头部的部分组件
原因推测
- 关联对象导入异常:Blender中的关联对象在导出FBX时,Unity无法正确识别其关联关系。拖拽导入时Unity会自动处理FBX的层级与关联内容,但手动通过
new GameObject创建时,仅添加了基础组件,未正确加载原FBX中关联对象的网格数据。 - 缩放数据遗留问题:虽在Blender中应用了Delta缩放,但FBX导出时仍可能残留异常缩放数据。拖拽导入时Unity的自动修复机制处理了该问题,而手动实例化时未触发修复,导致头部网格被异常拉伸至不可见(首次出现的拉伸覆盖地形就是直接证据)。
- 网格数据未完整赋值:手动创建GameObject时,
MeshFilter的mesh属性未被设置为原模型的完整网格(包含头部和箭杆),仅加载了箭杆部分的网格,最终导致头部缺失。正确的做法应是从原预制体或加载的FBX资源中获取完整网格数据,再赋值给新创建的对象,而非直接空创建GameObject。
内容的提问来源于stack exchange,提问作者Frostwolf
相关产品推荐
相关产品推荐

