Exemplo n.º 1
0
        public static void MeshToObjFile(Mesh mesh, string filename, SplineFormer.ExportOptionsContainer options)
        {
            try
            {
                filename = Path.ChangeExtension(filename, ".obj");
                string path = null;
                if (options.ShowSaveAsDialog)
                {
                    path = EditorUtility.SaveFilePanel("Export to OBJ", "", filename, "obj");
                    if (String.IsNullOrEmpty(path))
                    {
                        return;
                    }
                }
                else
                {
                    path = AssetsDirectory + options.DefaultFolder + "/" + filename;
                }

                PrepareDirectory(path);

                using (StreamWriter sw = new StreamWriter(path))
                {
                    sw.Write(MeshToObjString(mesh));
                }

                filename = Path.GetFileName(path);
                string msg = String.Format("Mesh exported as {0}.", filename);

                if (options.ShowExportResultDialog)
                {
                    EditorUtility.DisplayDialog("Exported successfully", msg, "OK");
                }
                else
                {
                    Debug.Log(msg);
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
                if (options.ShowExportResultDialog)
                {
                    EditorUtility.DisplayDialog("Export failed", msg, "OK");
                }
                else
                {
                    Debug.LogError("Export failed:" + msg);
                }
            }
        }
Exemplo n.º 2
0
        public static void MeshToAsset(Mesh mesh, string filename, SplineFormer.ExportOptionsContainer options)
        {
            try
            {
                filename = Path.ChangeExtension(filename, ".asset");
                string path = null;

                if (options.ShowSaveAsDialog)
                {
                    path = EditorUtility.SaveFilePanel("Export to asset", AssetsDirectory, filename, "asset");
                    if (String.IsNullOrEmpty(path))
                    {
                        return;
                    }
                }
                else
                {
                    path = AssetsDirectory + options.DefaultFolder + "/" + filename;
                }

                int index = path.LastIndexOf(AssetsDirectory, StringComparison.Ordinal);
                if (index < 0)
                {
                    throw new ArgumentException(
                              String.Format("Asset can't be saved outside the folder \"{0}\"", AssetsDirectory)
                              );
                }

                PrepareDirectory(path);

                mesh = (Mesh)Instantiate(mesh);
                path = path.Remove(0, index);
                AssetDatabase.DeleteAsset(path);
                AssetDatabase.SaveAssets();
                AssetDatabase.CreateAsset(mesh, path);
                AssetDatabase.SaveAssets();

                filename = Path.GetFileName(path);
                string msg = String.Format("Mesh exported as {0}.", filename);
                if (options.ShowExportResultDialog)
                {
                    EditorUtility.DisplayDialog("Exported successfully", msg, "OK");
                }
                else
                {
                    Debug.Log(msg);
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
                if (options.ShowExportResultDialog)
                {
                    EditorUtility.DisplayDialog("Export failed", msg, "OK");
                }
                else
                {
                    Debug.LogError("Export failed:" + msg);
                }
            }
        }