Skip to content

Commit 98f18b2

Browse files
authored
Merge pull request #15 from Unity-Technologies/UNI-20478-fix-material-assignment-bug
UNI-20478 fix material assignment bug
2 parents f819ae4 + 06b9fde commit 98f18b2

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

Assets/FbxExporters/Editor/FbxExporter.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ public FbxSurfaceMaterial ExportMaterial (Material unityMaterial, FbxScene fbxSc
261261

262262
var materialName = unityMaterial ? unityMaterial.name : "DefaultMaterial";
263263
if (MaterialMap.ContainsKey (materialName)) {
264+
AssignLayerElementMaterial (fbxMesh);
264265
return MaterialMap [materialName];
265266
}
266267

@@ -292,6 +293,14 @@ public FbxSurfaceMaterial ExportMaterial (Material unityMaterial, FbxScene fbxSc
292293
ExportTexture (unityMaterial, "_SpecGlosMap", fbxMaterial, FbxSurfaceMaterial.sSpecular);
293294
}
294295

296+
AssignLayerElementMaterial (fbxMesh);
297+
298+
MaterialMap.Add (materialName, fbxMaterial);
299+
return fbxMaterial;
300+
}
301+
302+
private void AssignLayerElementMaterial(FbxMesh fbxMesh)
303+
{
295304
// Add FbxLayerElementMaterial to layer 0 of the node
296305
FbxLayer fbxLayer = fbxMesh.GetLayer (0 /* default layer */);
297306
if (fbxLayer == null) {
@@ -300,7 +309,6 @@ public FbxSurfaceMaterial ExportMaterial (Material unityMaterial, FbxScene fbxSc
300309
}
301310

302311
using (var fbxLayerElement = FbxLayerElementMaterial.Create (fbxMesh, "Material")) {
303-
304312
// Using all same means that the entire mesh uses the same material
305313
fbxLayerElement.SetMappingMode (FbxLayerElement.EMappingMode.eAllSame);
306314
fbxLayerElement.SetReferenceMode (FbxLayerElement.EReferenceMode.eIndexToDirect);
@@ -311,9 +319,6 @@ public FbxSurfaceMaterial ExportMaterial (Material unityMaterial, FbxScene fbxSc
311319
fbxElementArray.Add (0);
312320
fbxLayer.SetMaterials (fbxLayerElement);
313321
}
314-
315-
MaterialMap.Add (materialName, fbxMaterial);
316-
return fbxMaterial;
317322
}
318323

319324
/// <summary>

0 commit comments

Comments
 (0)