- changed status to resolved
Errors on using buildpipeline from EditorWindow
Issue #534
resolved
I am using a EditorWindow to automate my builds. With the following script i get errors on building.
namespace BuildPipeline.Editor
{
using System.Collections.Generic;
using System.Linq;
using Sirenix.OdinInspector;
using Sirenix.OdinInspector.Editor;
using UnityEditor;
using UnityEditor.Build.Reporting;
using UnityEngine;
public class ServerAndClientBuilderWindow : OdinEditorWindow
{
[MenuItem("Tools/Build Server and Client")]
static void Init()
{
ServerAndClientBuilderWindow window = GetWindow<ServerAndClientBuilderWindow>();
window.Show();
}
[Button]
public void BuildPlayer()
{
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new[]
{
"Assets/Scenes/SampleScene.unity"
};
buildPlayerOptions.locationPathName = "builds/Sample.exe";
buildPlayerOptions.target = BuildTarget.StandaloneWindows64;
buildPlayerOptions.options = BuildOptions.AutoRunPlayer;
BuildReport report = BuildPipeline.BuildPlayer(buildPlayerOptions);
BuildSummary summary = report.summary;
if (summary.result == BuildResult.Succeeded)
{
Debug.Log("Build succeeded: " + summary.totalSize + " bytes");
}
if (summary.result == BuildResult.Failed)
{
Debug.Log("Build failed");
}
}
}
}
Errors:
UnityVersion: 2019.1.1f1
OdinVersion: 2.0.19
EditorOnlyMode: No
Os: Windows 10
Comments (1)
-
- Log in to comment
You should not be invoking a build directly from GUI code like a button (unless you finish off with GUIUtility.ExitGUI()), but instead you should do it as a delayed invocation:
EditorApplication.delayCall += () => { /* Build code here */ };