Skip to content

Commit

Permalink
fix: better sanitization for missing multi materials on renderers and…
Browse files Browse the repository at this point in the history
… SkinnedMeshRenderers
  • Loading branch information
hybridherbst committed Apr 20, 2021
1 parent 2f72e5c commit 587cee9
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions UnityGLTF/Assets/UnityGLTF/Runtime/Scripts/GLTFSceneExporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -645,7 +645,7 @@ private NodeId ExportNode(Transform nodeTransform)
{
_animatedNodes.Add(nodeTransform);
}
if (nodeTransform.GetComponent<SkinnedMeshRenderer>())
if (nodeTransform.GetComponent<SkinnedMeshRenderer>() && ContainsValidRenderer(nodeTransform.gameObject))
{
_skinnedNodes.Add(nodeTransform);
}
Expand Down Expand Up @@ -793,7 +793,12 @@ private static bool ContainsValidRenderer(GameObject gameObject)
var meshRenderer = gameObject.GetComponent<MeshRenderer>();
var meshFilter = gameObject.GetComponent<MeshFilter>();
var skinnedMeshRender = gameObject.GetComponent<SkinnedMeshRenderer>();
return (meshFilter && meshRenderer && meshRenderer.enabled) || (skinnedMeshRender && skinnedMeshRender.enabled);
var materials = meshRenderer ? meshRenderer.sharedMaterials : skinnedMeshRender ? skinnedMeshRender.sharedMaterials : null;
var anyMaterialIsNonNull = false;
if(materials != null)
for (int i = 0; i < materials.Length; i++)
anyMaterialIsNonNull |= materials[i];
return (meshFilter && meshRenderer && meshRenderer.enabled) || (skinnedMeshRender && skinnedMeshRender.enabled) && anyMaterialIsNonNull;
}
private LightId ExportLight(Light unityLight)
{
Expand Down Expand Up @@ -3218,7 +3223,7 @@ private void ExportSkinFromNode(Transform transform)
MeshId val;
if (!_primOwner.TryGetValue(key, out val))
{
Debug.Log("No mesh found for skin");
Debug.Log("No mesh found for skin on " + transform, transform);
return;
}
SkinnedMeshRenderer skin = transform.GetComponent<SkinnedMeshRenderer>();
Expand Down

0 comments on commit 587cee9

Please sign in to comment.