public void Export(bool run)
{
try
{
string sceneName = EditorSceneManager.GetActiveScene().name;
exportationOptions.DefaultFolder = EditorUtility.SaveFolderPanel("Please select a folder", exportationOptions.DefaultFolder, "");
if (string.IsNullOrEmpty(exportationOptions.DefaultFolder))
{
return;
}
Stopwatch watch = new Stopwatch();
watch.Start();
var jsWriter = new JsonWriter();
File.WriteAllText("Unity3D2Babylon.ini", jsWriter.Write(exportationOptions));
logs.Clear();
ReportProgress(0);
var sceneBuilder = new SceneBuilder(exportationOptions.DefaultFolder, sceneName, exportationOptions);
sceneBuilder.ConvertFromUnity();
ReportProgress(1, "Generating output file");
var outputFile = sceneBuilder.WriteToBabylonFile();
watch.Stop();
ReportProgress(1, string.Format("Exportation done in {0:0.00}s", watch.Elapsed.TotalSeconds));
EditorUtility.ClearProgressBar();
sceneBuilder.GenerateStatus(logs);
ShowMessage("Exportation done");
if (run)
{
WebServer.SceneFolder = Path.GetDirectoryName(outputFile);
WebServer.SceneFilename = Path.GetFileName(outputFile);
Process.Start("http://localhost:" + WebServer.Port);
}
}
catch (Exception ex)
{
EditorUtility.ClearProgressBar();
ShowMessage("A problem occurred: " + ex.Message + ex.StackTrace, "Error");
}
}