public void Optimize(Transform newRoot, Action <DollPartType, Material> processMaterial) { var newParts = new GameObject(); newParts.transform.parent = newRoot.transform; newParts.name = "Parts"; var newSkeleton = GameObject.Instantiate(skeletonRoot, newRoot.transform); newSkeleton.name = "Root"; var reBoner = new ReBoner(newSkeleton); foreach (DollPartType partType in DollPartTypes.Values) { var srcPart = ActiveParts[partType]; if (srcPart != null) { var newPart = GameObject.Instantiate(srcPart.Go, newParts.transform); var newSkin = newPart.GetComponent <SkinnedMeshRenderer>(); newSkin.material = new Material(Materials[partType]); reBoner.ReBone(newSkin); if (processMaterial != null) { processMaterial(partType, newSkin.material); } } } }
public void Optimize(Transform newRoot, Material _mat) { var newParts = new GameObject(); newParts.transform.parent = newRoot.transform; newParts.name = "Parts"; var newSkeleton = GameObject.Instantiate(skeletonRoot, newRoot.transform); newSkeleton.name = "Root"; var reBoner = new ReBoner(newSkeleton); foreach (BodyPartEnum partType in bodyparts) { var srcPart = activeParts[partType]; if (srcPart != null) { var newPart = GameObject.Instantiate(srcPart, newParts.transform); var newSkin = newPart.GetComponent <SkinnedMeshRenderer>(); newSkin.material = _mat; reBoner.ReBone(newSkin); } } }