Unity3D动态加载FBX文件并非指使用Unity内部指令Resources、AssetsBundle等,而是在已发布的程序运行时,动态加载FBX资源文件。
Max导出模型格式有二进制和ASCII两种。本文针对ASCII予以说明。通过System.IO将文件读取为文本文件,初学者可先使用立方体进行导入实验。根据文本属性:Vertices、PolyonyVertexIndex、Normals、UV、UV Index来获取模型信息。以立方体为例:
Vertices:顶点坐标信息。此值为24,换算为三维坐标是8。
PolygonVertexIndex:几何顶点索引值。此值个数为36。如果是三角面,每隔三个为负数【取反减1即可】,如果是四边面,每隔四个为负数。
Nromals:法线。此值个数为108,换算为三维坐标是36。
UV:纹理坐标。此值为48,换算二位坐标是24。
UV Index:纹理坐标索引。此值为24。
注:
1、模型导出建议使用三角面,三角面解析后PolyonyVertexIndex和UV Index的个数能和Unity中对应上,如果使用四边形导出,此二值的个数会减少,需要手动换算成三角面个数。
2、如果导出模型修改了轴向以及轴位置,还需要注意Geometric属性,需要将顶点进行换算后使用。
3、Unity中三角面为逆时针渲染,如果出现模型只能反面显示的话,调节顶点索引的顺序即可。
4、UV出现错误时,应当从模型的网格入手,切记直接修改UV坐标和索引【个人愚见】。