public static bool Export(GameObject go, string path, Settings settings) { if (path == null || path.Length == 0 || go == null) { return(false); } var inst = new ObjExporter(); inst.DoExport(go, path, settings); return(true); }
void DrawExportPanel() { var settings = m_target.settings; EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(GUILayout.Width(indentSize)); EditorGUILayout.Space(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(GUILayout.Width(c1Width)); settings.inexportIndex = GUILayout.SelectionGrid(settings.inexportIndex, strInExport, 1); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(GUILayout.Width(spaceSize)); EditorGUILayout.Space(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); if (settings.inexportIndex == 0) { if (GUILayout.Button("Duplicate")) { var dup = Instantiate(m_target.mesh); Utils.MeshToGameObject(dup, Vector3.zero, Utils.ExtractMaterials(m_target.gameObject)); } } if (settings.inexportIndex == 1) { if (GUILayout.Button("Export .asset file")) { string path = EditorUtility.SaveFilePanel("Export .asset file", "Assets", Utils.SanitizeForFileName(m_target.name), "asset"); if (path.Length > 0) { var dataPath = Application.dataPath; if (!path.StartsWith(dataPath)) { Debug.LogError("Invalid path: Path must be under " + dataPath); } else { path = path.Replace(dataPath, "Assets"); AssetDatabase.CreateAsset(Instantiate(m_target.mesh), path); Debug.Log("Asset exported: " + path); } } } } else if (settings.inexportIndex == 2) { settings.objFlipHandedness = EditorGUILayout.Toggle("Flip Handedness", settings.objFlipHandedness); settings.objFlipFaces = EditorGUILayout.Toggle("Flip Faces", settings.objFlipFaces); settings.objMakeSubmeshes = EditorGUILayout.Toggle("Make Submeshes", settings.objMakeSubmeshes); settings.objApplyTransform = EditorGUILayout.Toggle("Apply Transform", settings.objApplyTransform); settings.objIncludeChildren = EditorGUILayout.Toggle("Include Children", settings.objIncludeChildren); if (GUILayout.Button("Export .obj file")) { string path = EditorUtility.SaveFilePanel("Export .obj file", "", Utils.SanitizeForFileName(m_target.name), "obj"); ObjExporter.Export(m_target.gameObject, path, new ObjExporter.Settings { flipFaces = settings.objFlipFaces, flipHandedness = settings.objFlipHandedness, includeChildren = settings.objIncludeChildren, makeSubmeshes = settings.objMakeSubmeshes, applyTransform = settings.objApplyTransform, }); } } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); }