最近有项目需求需要根据特殊文件来绘制自定义图形,考虑到其他编辑器对此文件的共用,所以将图形导出为FBX格式。
在网上找到了一个git仓库在这也记录分享一下:
Git仓库:UnityFBXExporterhttps://github.com/Ymiku/UnityFBXExporter
插件功能包括: - Mesh 导出成 FBX- 支持导出 颜色,材质球 - 支持UV2
另外,此插件在导出如Cube等普通的fbx时候不会遇到问题,但是在导出我的自定义mesh的时候,报了一个错误:IndexOutOfRangeException: Index was outside the bounds of the array.经筛查发现是我的mesh法线数组是空的?!
于是,在获取mesh的法线之前,使用 mesh.RecalculateNormals(); 重新计算网格的法线,即可解决问题。
问题的原因是如果mesh是代码实例化生成,需要手动给normals填充值。Unity官方API也是提示了这一点:“在修改完顶点后,通常会更新法线来反映新的变化。”