diff --git a/Runtime/Scripts/ModelBaker/MeshCombiner.cs b/Runtime/Scripts/ModelBaker/MeshCombiner.cs index abbafd0..fac8c8b 100644 --- a/Runtime/Scripts/ModelBaker/MeshCombiner.cs +++ b/Runtime/Scripts/ModelBaker/MeshCombiner.cs @@ -5,7 +5,6 @@ using UnityEngine; using System.Collections.Generic; -using System.Linq; namespace TAO.VertexAnimation { @@ -88,8 +87,28 @@ namespace TAO.VertexAnimation // TODO: Merge materialMergedObjects. // TEMP: Remove when materialMergedObjects. + //SkinnedMeshRenderer newSkinnedMeshRenderer = tmp[0].GetComponent(); + //target.sharedMesh = newSkinnedMeshRenderer.sharedMesh; + //target.sharedMaterial = newSkinnedMeshRenderer.sharedMaterial; + //target.bones = newSkinnedMeshRenderer.bones; + + List combine = new List(); + for (int i = 0; i < groups.Count; i++) + { + combine.Add(new CombineInstance + { + mesh = tmp[i].GetComponent().sharedMesh, + transform = tmp[i].transform.localToWorldMatrix + }); + } + SkinnedMeshRenderer newSkinnedMeshRenderer = tmp[0].GetComponent(); - target.sharedMesh = newSkinnedMeshRenderer.sharedMesh; + //target.sharedMesh = tmp[0].GetComponent().sharedMesh; + target.sharedMesh = new Mesh(); + if (combine != null && combine.Count != 0) + { + target.sharedMesh.CombineMeshes(combine.ToArray(), false, false); + } target.sharedMaterial = newSkinnedMeshRenderer.sharedMaterial; target.bones = newSkinnedMeshRenderer.bones;