public void Build(bool solo, string[] info = null)
{
if (solo)
{
// Validate default project folder selected
if (String.IsNullOrEmpty(exportationOptions.DefaultProjectFolder))
{
ShowMessage("No default project file selected.");
return;
}
// Validate default project folder exists
if (!Directory.Exists(exportationOptions.DefaultProjectFolder))
{
ShowMessage("No default project file created.");
return;
}
}
try
{
var sceneInfo = info ?? GetSceneInfomation(false);
string scriptPath = sceneInfo[2];
string projectScript = sceneInfo[4];
// Save and clear console
if (solo)
{
try { UnityEngine.Debug.ClearDeveloperConsole(); } catch { }
SaveSettings();
}
// Assemble javascript files
string javascriptFile = Tools.FormatProjectJavaScript(scriptPath, projectScript);
if (solo || exportationOptions.BuildJavaScript)
{
ReportProgress(1, "Building project javascript files...");
Tools.BuildProjectJavaScript(scriptPath, projectScript, javascriptFile);
}
// Compile typescript files
if (solo || exportationOptions.CompileTypeScript)
{
ReportProgress(1, "Compiling project typescript files... This may take a while.");
string config = String.Empty;
string options = Path.Combine(Application.dataPath, "Babylon/Templates/Config/options.json");
if (File.Exists(options)) config = File.ReadAllText(options);
Tools.BuildProjectTypeScript(exportationOptions.DefaultNodeRuntimePath, exportationOptions.DefaultTypeSriptPath, scriptPath, javascriptFile, config);
}
}
catch (Exception ex)
{
UnityEngine.Debug.LogException(ex);
}
finally
{
if (solo) EditorUtility.ClearProgressBar();
}
}