static public Mesh BakeOneMesh(MB3_MeshCombinerSingle mom, string newMeshFilePath, GameObject objToBake) { Mesh outMesh = null; if (objToBake == null) { Debug.LogError("An object on the list of objects to combine is 'None'. Use Command-Delete on Mac OS X; Delete or Shift-Delete on Windows to remove this one element."); return(null); } MB3_EditorMethods editorMethods = new MB3_EditorMethods(); GameObject[] objs = new GameObject[] { objToBake }; Renderer r = MB_Utility.GetRenderer(objToBake); if (r is SkinnedMeshRenderer) { mom.renderType = MB_RenderType.skinnedMeshRenderer; } else if (r is MeshRenderer) { mom.renderType = MB_RenderType.meshRenderer; } else { Debug.LogError("Unsupported Renderer type on object. Must be SkinnedMesh or MeshFilter."); return(null); } if (newMeshFilePath == null && newMeshFilePath.Length != 0) //todo check directory exists { Debug.LogError("File path was not in assets folder."); return(null); } if (mom.AddDeleteGameObjects(objs, null, false)) { mom.Apply(MB3_MeshBakerEditorFunctions.UnwrapUV2); Mesh mf = MB_Utility.GetMesh(objToBake); if (mf != null) { Debug.Log("Creating mesh for " + objToBake.name + " with adjusted UVs at: " + newMeshFilePath); AssetDatabase.CreateAsset(mom.GetMesh(), newMeshFilePath); outMesh = (Mesh)AssetDatabase.LoadAssetAtPath(newMeshFilePath, typeof(Mesh)); } } mom.DestroyMeshEditor(editorMethods); return(outMesh); }
static public bool BakeOneMesh(MB3_MeshCombinerSingle mom, Mesh targMesh, GameObject objToBake) { if (objToBake == null) { Debug.LogError("An object on the list of objects to combine is 'None'. Use Command-Delete on Mac OS X; Delete or Shift-Delete on Windows to remove this one element."); return(false); } if (targMesh == null) { Debug.LogError("No mesh was provided."); return(false); } mom.SetMesh(targMesh); mom.ClearMesh(); GameObject[] objs = new GameObject[] { objToBake }; Renderer r = MB_Utility.GetRenderer(objToBake); if (r is SkinnedMeshRenderer) { mom.renderType = MB_RenderType.skinnedMeshRenderer; } else if (r is MeshRenderer) { mom.renderType = MB_RenderType.meshRenderer; } else { Debug.LogError("Unsupported Renderer type on object. Must be SkinnedMesh or MeshFilter."); return(false); } if (mom.AddDeleteGameObjects(objs, null, false)) { mom.Apply(MB3_MeshBakerEditorFunctions.UnwrapUV2); Mesh mf = MB_Utility.GetMesh(objToBake); if (mf == null) { Debug.LogError("Failed to create mesh for " + objToBake.name); return(false); } } return(true); }