Skip to content

Commit 6e44729

Browse files
committed
code review fixes
1 parent 5eb716a commit 6e44729

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

Assets/FbxExporters/Editor/FbxExporter.cs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -395,11 +395,14 @@ private void AssignLayerElementMaterial(FbxMesh fbxMesh, Mesh mesh, int material
395395

396396
FbxLayerElementArray fbxElementArray = fbxLayerElement.GetIndexArray ();
397397

398-
for (int i = 0; i < mesh.subMeshCount; i++) {
399-
var topology = mesh.GetTopology (i);
398+
for (int subMeshIndex = 0; subMeshIndex < mesh.subMeshCount; subMeshIndex++) {
399+
var topology = mesh.GetTopology (subMeshIndex);
400400
int polySize;
401401

402402
switch (topology) {
403+
case MeshTopology.Triangles:
404+
polySize = 3;
405+
break;
403406
case MeshTopology.Quads:
404407
polySize = 4;
405408
break;
@@ -412,14 +415,16 @@ private void AssignLayerElementMaterial(FbxMesh fbxMesh, Mesh mesh, int material
412415
case MeshTopology.LineStrip:
413416
throw new System.NotImplementedException();
414417
break;
415-
default: /* MeshTopology.Triangles */
416-
polySize = 3;
418+
default:
419+
throw new System.NotImplementedException ();
417420
break;
418421
}
419422

420-
var indices = mesh.GetIndices (i);
421-
for (int j = 0; j < indices.Length / polySize; j++) {
422-
fbxElementArray.Add (i);
423+
// Specify the material index for each polygon.
424+
// Material index should match subMeshIndex.
425+
var indices = mesh.GetIndices (subMeshIndex);
426+
for(int j = 0, n = indices.Length / polySize; j < n; j++){
427+
fbxElementArray.Add (subMeshIndex);
423428
}
424429
}
425430
}
@@ -500,9 +505,14 @@ meshInfo.Vertices [v].z*UnitScaleFactor
500505
int[] vertOrder;
501506

502507
switch (topology) {
508+
case MeshTopology.Triangles:
509+
polySize = 3;
510+
// flip winding order so that Maya and Unity import it properly
511+
vertOrder = new int[]{ 0, 2, 1 };
512+
break;
503513
case MeshTopology.Quads:
504514
polySize = 4;
505-
// vertices have to be reordered as this gets flipped back during import
515+
// flip winding order so that Maya and Unity import it properly
506516
vertOrder = new int[]{ 0, 3, 2, 1 };
507517
break;
508518
case MeshTopology.Lines:
@@ -514,11 +524,8 @@ meshInfo.Vertices [v].z*UnitScaleFactor
514524
case MeshTopology.LineStrip:
515525
throw new System.NotImplementedException();
516526
break;
517-
default: /* MeshTopology.Triangles */
518-
polySize = 3;
519-
// triangle vertices have to be reordered to be 0,2,1 instead
520-
// of 0,1,2, as this gets flipped back during import
521-
vertOrder = new int[]{ 0, 2, 1 };
527+
default:
528+
throw new System.NotImplementedException ();
522529
break;
523530
}
524531

0 commit comments

Comments
 (0)