@@ -261,6 +261,7 @@ public FbxSurfaceMaterial ExportMaterial (Material unityMaterial, FbxScene fbxSc
261
261
262
262
var materialName = unityMaterial ? unityMaterial . name : "DefaultMaterial" ;
263
263
if ( MaterialMap . ContainsKey ( materialName ) ) {
264
+ AssignLayerElementMaterial ( fbxMesh ) ;
264
265
return MaterialMap [ materialName ] ;
265
266
}
266
267
@@ -292,6 +293,14 @@ public FbxSurfaceMaterial ExportMaterial (Material unityMaterial, FbxScene fbxSc
292
293
ExportTexture ( unityMaterial , "_SpecGlosMap" , fbxMaterial , FbxSurfaceMaterial . sSpecular ) ;
293
294
}
294
295
296
+ AssignLayerElementMaterial ( fbxMesh ) ;
297
+
298
+ MaterialMap . Add ( materialName , fbxMaterial ) ;
299
+ return fbxMaterial ;
300
+ }
301
+
302
+ private void AssignLayerElementMaterial ( FbxMesh fbxMesh )
303
+ {
295
304
// Add FbxLayerElementMaterial to layer 0 of the node
296
305
FbxLayer fbxLayer = fbxMesh . GetLayer ( 0 /* default layer */ ) ;
297
306
if ( fbxLayer == null ) {
@@ -300,7 +309,6 @@ public FbxSurfaceMaterial ExportMaterial (Material unityMaterial, FbxScene fbxSc
300
309
}
301
310
302
311
using ( var fbxLayerElement = FbxLayerElementMaterial . Create ( fbxMesh , "Material" ) ) {
303
-
304
312
// Using all same means that the entire mesh uses the same material
305
313
fbxLayerElement . SetMappingMode ( FbxLayerElement . EMappingMode . eAllSame ) ;
306
314
fbxLayerElement . SetReferenceMode ( FbxLayerElement . EReferenceMode . eIndexToDirect ) ;
@@ -311,9 +319,6 @@ public FbxSurfaceMaterial ExportMaterial (Material unityMaterial, FbxScene fbxSc
311
319
fbxElementArray . Add ( 0 ) ;
312
320
fbxLayer . SetMaterials ( fbxLayerElement ) ;
313
321
}
314
-
315
- MaterialMap . Add ( materialName , fbxMaterial ) ;
316
- return fbxMaterial ;
317
322
}
318
323
319
324
/// <summary>
0 commit comments