// refresh checks whenever inspector updates void OnInspectorUpdate() { if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.Lumin) { if (EditorUserBuildSettings.GetPlatformSettings("Lumin", "SDKPath") != "") { isSDKSet = true; sdkPath = EditorUserBuildSettings.GetPlatformSettings("Lumin", "SDKPath"); if (PlayerSettings.Lumin.CertificatePath != "") { isLicenseSet = true; licenseFullPath = PlayerSettings.Lumin.CertificatePath; } else { isLicenseSet = false; } } else { isSDKSet = false; } isLumin = true; } else { isLumin = false; } }
public static void Test() { Debug.Log("old:" + EditorUserBuildSettings.GetPlatformSettings("", "metroPackageVersion")); Debug.Log("Test:" + EditorPrefs.GetString("metroPackageVersion")); Debug.Log(";;:" + EditorUserSettings.GetConfigValue("metroPackageVersion")); }
public virtual void UpdateBootConfig(BuildTarget target, BootConfigData config, BuildOptions options) { config.Set("wait-for-native-debugger", "0"); if (config.Get("player-connection-debug") == "1") { if (EditorUserBuildSettings.GetPlatformSettings(BuildPipeline.GetBuildTargetName(target), BuildPlayerWindow.kSettingDebuggingWaitForManagedDebugger) == "true") { config.Set("wait-for-managed-debugger", "1"); } else { config.Set("wait-for-managed-debugger", "0"); } } if (EditorApplication.scriptingRuntimeVersion == ScriptingRuntimeVersion.Latest) { config.Set("scripting-runtime-version", "latest"); } bool isVrEnabled = UnityEditorInternal.VR.VREditor.GetVREnabledOnTargetGroup(BuildPipeline.GetBuildTargetGroup(target)); config.Set("vr-enabled", isVrEnabled ? "1" : "0"); if (isVrEnabled) { string[] vrDevices = UnityEditorInternal.VR.VREditor.GetVREnabledDevicesOnTarget(target); if (vrDevices.Length > 0) { string vrDeviceList = String.Join(",", vrDevices); config.Set("vr-device-list", vrDeviceList); } } }
public static void OnPostprocessBuild(BuildTarget target, string path) { #if UNITY_IOS || UNITY_TVOS || UNITY_STANDALONE_OSX Debug.Log(string.Format("[HovelHouse.CloudKit] building for target: '{0}'", target)); bool isXCodeTarget = false; if (target == BuildTarget.iOS || target == BuildTarget.tvOS) { isXCodeTarget = true; } else if (target == BuildTarget.StandaloneOSX) { // xcode for MacOS builds not supported before this version #if UNITY_2019_3_OR_NEWER string setting = EditorUserBuildSettings.GetPlatformSettings("OSXUniversal", "CreateXcodeProject"); bool.TryParse(setting, out isXCodeTarget); #endif } if (isXCodeTarget) { PostProcessXCodeProject(path); } else if (target == BuildTarget.StandaloneOSX) { PostProcessMacOS(path); } #endif }
void OnGUI() { GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); if (string.IsNullOrEmpty(m_bundlePath)) { m_bundlePath = EditorUserBuildSettings.GetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath"); } var bp = GUILayout.TextField(m_bundlePath); if (bp != m_bundlePath) { EditorUserBuildSettings.SetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath", m_bundlePath = bp); } if (GUILayout.Button("Browse")) { BrowseForFolder(); } GUILayout.EndHorizontal(); m_ForceRebuild = GUILayout.Toggle(m_ForceRebuild, "Force Rebuild/Clear Bundle Folder"); m_buildTarget = (BuildTarget)EditorGUILayout.EnumPopup("Target", m_buildTarget); m_options = (BuildAssetBundleOptions)EditorGUILayout.EnumMaskPopup("Options", m_options); if (GUILayout.Button("Build")) { if (string.IsNullOrEmpty(m_bundlePath)) { BrowseForFolder(); } if (m_ForceRebuild) { if (EditorUtility.DisplayDialog("File delete confirmation", "Do you want to delete all files in the directory " + m_bundlePath + "?", "Yes", "No")) { try { if (Directory.Exists(m_bundlePath)) { Directory.Delete(m_bundlePath, true); } } catch (System.Exception e) { Debug.LogException(e); } } } if (!Directory.Exists(m_bundlePath)) { Directory.CreateDirectory(m_bundlePath); } BuildPipeline.BuildAssetBundles(m_bundlePath, m_options, m_buildTarget); AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); // m_showSummary = true; } GUILayout.EndVertical(); }
public virtual void UpdateBootConfig(BuildTarget target, BootConfigData config, BuildOptions options) { config.Set("wait-for-native-debugger", "0"); if (config.Get("player-connection-debug") == "1") { if (EditorUserBuildSettings.GetPlatformSettings(BuildPipeline.GetBuildTargetName(target), BuildPlayerWindow.kSettingDebuggingWaitForManagedDebugger) == "true") { config.Set("wait-for-managed-debugger", "1"); } else { config.Set("wait-for-managed-debugger", "0"); } } if (EditorApplication.scriptingRuntimeVersion == ScriptingRuntimeVersion.Latest) { config.Set("scripting-runtime-version", "latest"); } else { config.Set("scripting-runtime-version", "legacy"); } string checkVREnabled = config.Get("vr-enabled"); if (String.IsNullOrEmpty(checkVREnabled) || String.Compare("0", checkVREnabled, true) == 0) { bool isVrEnabled = UnityEditorInternal.VR.VREditor.GetVREnabledOnTargetGroup(BuildPipeline.GetBuildTargetGroup(target)); config.Set("vr-enabled", isVrEnabled ? "1" : "0"); if (isVrEnabled) { string[] vrDevices = UnityEditorInternal.VR.VREditor.GetVREnabledDevicesOnTarget(target); if (vrDevices.Length > 0) { string vrDeviceList = String.Join(",", vrDevices); config.Set("vr-device-list", vrDeviceList); } } } config.Set("hdr-display-enabled", PlayerSettings.useHDRDisplay ? "1" : "0"); if (BuildPipeline.IsFeatureSupported("ENABLE_SCRIPTING_GC_WBARRIERS", target)) { if (PlayerSettings.gcWBarrierValidation) { config.AddKey("validate-write-barriers"); } if (PlayerSettings.gcIncremental) { config.Set("gc-max-time-slice", "3"); } } }
/// <summary> /// /// </summary> static void EnsureOSXArchitecture() { var platformName = BuildPipeline.GetBuildTargetName(BuildTarget.StandaloneOSX); var architecture = EditorUserBuildSettings.GetPlatformSettings(platformName, "Architecture"); // throws exception when selecting "ARM64" or "x64ARM64" for the architecture if (architecture != "x64") { Debug.LogWarning( $"Apple Silicon architecture is not supported by WebRTC package" + $"Currently set to {architecture}"); } }
public void OnGUI(Rect pos) { //options EditorGUILayout.Space(); GUILayout.BeginVertical(); m_buildTarget = (ValidBuildTarget)EditorGUILayout.EnumPopup("Target", m_buildTarget); m_options = (BuildAssetBundleOptions)EditorGUILayout.EnumMaskPopup("Options", m_options); m_ForceRebuild = GUILayout.Toggle(m_ForceRebuild, "Clear all build folders on build"); m_CopyToStreaming = GUILayout.Toggle(m_CopyToStreaming, "Copy bundles to " + m_streamingPath); //output path EditorGUILayout.Space(); m_UseDefaultPath = GUILayout.Toggle(m_UseDefaultPath, "Use default output directory."); GUILayout.BeginHorizontal(); if (string.IsNullOrEmpty(m_outputPath)) { m_outputPath = EditorUserBuildSettings.GetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath"); } var origPath = m_outputPath; if (m_UseDefaultPath) { m_outputPath = "AssetBundles/"; m_outputPath += m_buildTarget.ToString(); GUILayout.Label("Output Directory: "); GUILayout.Label(m_outputPath); } else { GUILayout.Label("Output Directory: "); m_outputPath = GUILayout.TextArea(m_outputPath); } if (m_outputPath != origPath) { EditorUserBuildSettings.SetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath", m_outputPath); } GUILayout.EndHorizontal(); EditorGUILayout.Space(); // build. EditorGUILayout.Space(); if (GUILayout.Button("Build")) { ExecuteBuild(); } GUILayout.EndVertical(); }
internal static string GetPathToGlobalGameManagersAsset(BuildTarget buildTarget, string buildPath) { if ((int)buildTarget == 2) { return(GetPathForMac(buildPath)); } #if UNITY_2018_2_OR_NEWER if (EditorUserBuildSettings.GetPlatformSettings("Standalone", "CreateSolution").Equals("true")) { return(GetPathForVSProjectWindowsAndLinuxStandalone(buildPath)); } #endif return(GetPathForWindowsAndLinuxStandalone(buildPath)); }
public virtual void UpdateBootConfig(BuildTarget target, BootConfigData config, BuildOptions options) { config.Set("wait-for-native-debugger", "0"); if (config.Get("player-connection-debug") == "1") { if (EditorUserBuildSettings.GetPlatformSettings(BuildPipeline.GetBuildTargetName(target), "WaitForManagedDebugger") == "true") { config.Set("wait-for-managed-debugger", "1"); } else { config.Set("wait-for-managed-debugger", "0"); } } }
static bool IsValidBuildTarget(BuildTarget target) { if (target == BuildTarget.iOS || target == BuildTarget.tvOS) { return(true); } if (target == BuildTarget.StandaloneOSX && EditorUserBuildSettings.GetPlatformSettings("OSXUniversal", "CreateXcodeProject") == "true") { return(true); } return(false); }
public override void Update(VisualElement root) { base.Update(root); var content = root.Q("content"); var table = AddTable(content); // Build target - Windows MakeRow(table, "Active target - Windows", () => (EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows) || (EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows64), () => { EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Standalone, BuildTarget.StandaloneWindows64); }); // Scripting backend - IL2CPP MakeRow(table, "Scripting Backend", () => PlayerSettings.GetScriptingBackend(BuildTargetGroup.Standalone) == ScriptingImplementation.IL2CPP, () => { PlayerSettings.SetScriptingBackend(BuildTargetGroup.Standalone, ScriptingImplementation.IL2CPP); }); // Copy PDB files MakeRow(table, "Copy PDB files", () => EditorUserBuildSettings.GetPlatformSettings("Standalone", kSettingCopyPDBFiles).ToLower() == "true", () => { EditorUserBuildSettings.SetPlatformSettings("Standalone", kSettingCopyPDBFiles, "true"); }); }
public void OnGUI(Rect pos) { m_scrollPosition = EditorGUILayout.BeginScrollView(m_scrollPosition); bool newState = false; //basic options EditorGUILayout.Space(); GUILayout.BeginVertical(); m_buildTarget = ABBuilder.Instance.CurBuildPlatform; EditorGUILayout.TextField(m_TargetContent, m_buildTarget.ToString()); EditorPrefs.SetInt(kBuildPrefPrefix + "BuildTarget", (int)m_buildTarget); m_outputPath = ABBuilder.Instance.GetPathPrefix_Assetbundle(); EditorUserBuildSettings.SetPlatformSettings(ABBuilder.GetCurrentBuildPlatformName(), "AssetBundleOutputPath", m_outputPath); //output path EditorGUILayout.Space(); GUILayout.BeginHorizontal(); var newPath = EditorGUILayout.TextField("Output Path", m_outputPath); if (newPath != m_outputPath) { m_useDefaultPath = false; m_outputPath = newPath; EditorUserBuildSettings.SetPlatformSettings(ABBuilder.GetCurrentBuildPlatformName(), "AssetBundleOutputPath", m_outputPath); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (string.IsNullOrEmpty(m_outputPath)) { m_outputPath = EditorUserBuildSettings.GetPlatformSettings(ABBuilder.GetCurrentBuildPlatformName(), "AssetBundleOutputPath"); } GUILayout.EndHorizontal(); EditorGUILayout.Space(); newState = GUILayout.Toggle( m_ForceRebuild.state, m_ForceRebuild.content); if (newState != m_ForceRebuild.state) { EditorPrefs.SetBool(m_ForceRebuild.PrefKey, newState); m_ForceRebuild.state = newState; } newState = GUILayout.Toggle( m_CopyToStreaming.state, m_CopyToStreaming.content); if (newState != m_CopyToStreaming.state) { EditorPrefs.SetBool(m_CopyToStreaming.PrefKey, newState); m_CopyToStreaming.state = newState; } // advanced options EditorGUILayout.Space(); m_advancedSettings = EditorGUILayout.Foldout(m_advancedSettings, "Advanced Settings"); if (m_advancedSettings) { var indent = EditorGUI.indentLevel; EditorGUI.indentLevel = 1; CompressOptions cmp = (CompressOptions)EditorGUILayout.IntPopup( m_CompressionContent, (int)m_compression, m_CompressionOptions, m_CompressionValues); if (cmp != m_compression) { m_compression = cmp; EditorPrefs.SetInt(kBuildPrefPrefix + "Compression", (int)m_compression); } foreach (var tog in m_toggleData) { newState = EditorGUILayout.ToggleLeft( tog.content, tog.state); if (newState != tog.state) { EditorPrefs.SetBool(tog.PrefKey, newState); tog.state = newState; } } EditorGUILayout.Space(); EditorGUI.indentLevel = indent; } // build. EditorGUILayout.Space(); if (GUILayout.Button("Build")) { ExecuteBuild(); } GUILayout.EndVertical(); EditorGUILayout.EndScrollView(); }
public void OnGUI(Rect pos) { m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition); bool newState = false; //basic options EditorGUILayout.Space(); GUILayout.BeginVertical(); // build target using (new EditorGUI.DisabledScope(!AssetBundleModel.Model.DataSource.CanSpecifyBuildTarget)) { ValidBuildTarget tgt = (ValidBuildTarget)EditorGUILayout.EnumPopup(m_TargetContent, m_BuildTarget); if (tgt != m_BuildTarget) { m_BuildTarget = tgt; if (m_UseDefaultPath) { m_OutputPath = "AssetBundles/"; m_OutputPath += m_BuildTarget.ToString(); EditorUserBuildSettings.SetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath", m_OutputPath); } } } ////output path using (new EditorGUI.DisabledScope(!AssetBundleModel.Model.DataSource.CanSpecifyBuildOutputDirectory)) { EditorGUILayout.Space(); GUILayout.BeginHorizontal(); var newPath = EditorGUILayout.TextField("Output Path", m_OutputPath); if (newPath != m_OutputPath) { m_UseDefaultPath = false; m_OutputPath = newPath; EditorUserBuildSettings.SetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath", m_OutputPath); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Browse", GUILayout.MaxWidth(75f))) { BrowseForFolder(); } if (GUILayout.Button("Reset", GUILayout.MaxWidth(75f))) { ResetPathToDefault(); } if (string.IsNullOrEmpty(m_OutputPath)) { m_OutputPath = EditorUserBuildSettings.GetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath"); } GUILayout.EndHorizontal(); EditorGUILayout.Space(); newState = GUILayout.Toggle( m_ForceRebuild.state, m_ForceRebuild.content); if (newState != m_ForceRebuild.state) { if (newState) { m_OnToggles.Add(m_ForceRebuild.content.text); } else { m_OnToggles.Remove(m_ForceRebuild.content.text); } m_ForceRebuild.state = newState; } newState = GUILayout.Toggle( m_CopyToStreaming.state, m_CopyToStreaming.content); if (newState != m_CopyToStreaming.state) { if (newState) { m_OnToggles.Add(m_CopyToStreaming.content.text); } else { m_OnToggles.Remove(m_CopyToStreaming.content.text); } m_CopyToStreaming.state = newState; } } // advanced options using (new EditorGUI.DisabledScope(!AssetBundleModel.Model.DataSource.CanSpecifyBuildOptions)) { EditorGUILayout.Space(); m_AdvancedSettings = EditorGUILayout.Foldout(m_AdvancedSettings, "Advanced Settings"); if (m_AdvancedSettings) { var indent = EditorGUI.indentLevel; EditorGUI.indentLevel = 1; CompressOptions cmp = (CompressOptions)EditorGUILayout.IntPopup( m_CompressionContent, (int)m_Compression, m_CompressionOptions, m_CompressionValues); if (cmp != m_Compression) { m_Compression = cmp; } foreach (var tog in m_ToggleData) { newState = EditorGUILayout.ToggleLeft( tog.content, tog.state); if (newState != tog.state) { if (newState) { m_OnToggles.Add(tog.content.text); } else { m_OnToggles.Remove(tog.content.text); } tog.state = newState; } } EditorGUILayout.Space(); EditorGUI.indentLevel = indent; } } // build. EditorGUILayout.Space(); if (GUILayout.Button("Build")) { EditorApplication.delayCall += ExecuteBuild; } GUILayout.EndVertical(); EditorGUILayout.EndScrollView(); }
public void OnGUI(Rect pos) { m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition); bool newState = false; //basic options EditorGUILayout.Space(); GUILayout.BeginVertical(); ValidBuildTarget tgt = (ValidBuildTarget)EditorGUILayout.EnumPopup(m_TargetContent, m_BuildTarget); if (tgt != m_BuildTarget) { m_BuildTarget = tgt; EditorPrefs.SetInt(k_BuildPrefPrefix + "BuildTarget", (int)m_BuildTarget); if (m_UseDefaultPath) { m_OutputPath = "AssetBundles/"; m_OutputPath += m_BuildTarget.ToString(); EditorUserBuildSettings.SetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath", m_OutputPath); } } ////output path EditorGUILayout.Space(); GUILayout.BeginHorizontal(); var newPath = EditorGUILayout.TextField("Output Path", m_OutputPath); if (newPath != m_OutputPath) { m_UseDefaultPath = false; m_OutputPath = newPath; EditorUserBuildSettings.SetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath", m_OutputPath); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Browse", GUILayout.MaxWidth(75f))) { BrowseForFolder(); } if (GUILayout.Button("Reset", GUILayout.MaxWidth(75f))) { ResetPathToDefault(); } if (string.IsNullOrEmpty(m_OutputPath)) { m_OutputPath = EditorUserBuildSettings.GetPlatformSettings(EditorUserBuildSettings.activeBuildTarget.ToString(), "AssetBundleOutputPath"); } GUILayout.EndHorizontal(); EditorGUILayout.Space(); newState = GUILayout.Toggle( m_ForceRebuild.state, m_ForceRebuild.content); if (newState != m_ForceRebuild.state) { EditorPrefs.SetBool(m_ForceRebuild.prefsKey, newState); m_ForceRebuild.state = newState; } newState = GUILayout.Toggle( m_CopyToStreaming.state, m_CopyToStreaming.content); if (newState != m_CopyToStreaming.state) { EditorPrefs.SetBool(m_CopyToStreaming.prefsKey, newState); m_CopyToStreaming.state = newState; } // advanced options EditorGUILayout.Space(); m_AdvancedSettings = EditorGUILayout.Foldout(m_AdvancedSettings, "Advanced Settings"); if (m_AdvancedSettings) { var indent = EditorGUI.indentLevel; EditorGUI.indentLevel = 1; CompressOptions cmp = (CompressOptions)EditorGUILayout.IntPopup( m_CompressionContent, (int)m_Compression, m_CompressionOptions, m_CompressionValues); if (cmp != m_Compression) { m_Compression = cmp; EditorPrefs.SetInt(k_BuildPrefPrefix + "Compression", (int)m_Compression); } foreach (var tog in m_ToggleData) { newState = EditorGUILayout.ToggleLeft( tog.content, tog.state); if (newState != tog.state) { EditorPrefs.SetBool(tog.prefsKey, newState); tog.state = newState; } } EditorGUILayout.Space(); EditorGUI.indentLevel = indent; } // build. EditorGUILayout.Space(); if (GUILayout.Button("Build")) { ExecuteBuild(); } GUILayout.EndVertical(); EditorGUILayout.EndScrollView(); }
private bool IsXCodeProject() { return(EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneOSX && EditorUserBuildSettings.GetPlatformSettings("OSXUniversal", "CreateXcodeProject").Equals("true")); }
public static void BuildGame(string buildDir, BuildTarget buildTarget, bool headLessBuild, bool devBuild = false, bool autoConnectProfiler = false, bool deepProfiling = false, bool scriptDebugging = false, bool copyPdbFiles = false, bool scriptsOnly = false) { Debug.Log($"Starting game build at {DateTime.Now:G}..."); Stopwatch stopwatch = Stopwatch.StartNew(); if (buildTarget == BuildTarget.StandaloneWindows || buildTarget == BuildTarget.StandaloneWindows64) { buildDir += ".exe"; } Debug.Log($"Building to '{buildDir}'..."); //Set target group #region Target Group BuildTargetGroup targetGroup; switch (buildTarget) { case BuildTarget.StandaloneLinux64: case BuildTarget.StandaloneWindows64: case BuildTarget.StandaloneOSX: case BuildTarget.StandaloneWindows: targetGroup = BuildTargetGroup.Standalone; break; case BuildTarget.iOS: targetGroup = BuildTargetGroup.iOS; break; case BuildTarget.Android: targetGroup = BuildTargetGroup.Android; break; case BuildTarget.WebGL: targetGroup = BuildTargetGroup.WebGL; break; case BuildTarget.WSAPlayer: targetGroup = BuildTargetGroup.WSA; break; case BuildTarget.PS4: targetGroup = BuildTargetGroup.PS4; break; case BuildTarget.XboxOne: targetGroup = BuildTargetGroup.XboxOne; break; case BuildTarget.tvOS: targetGroup = BuildTargetGroup.tvOS; break; case BuildTarget.Switch: targetGroup = BuildTargetGroup.Switch; break; case BuildTarget.Lumin: targetGroup = BuildTargetGroup.Lumin; break; case BuildTarget.Stadia: targetGroup = BuildTargetGroup.Stadia; break; case BuildTarget.CloudRendering: targetGroup = BuildTargetGroup.CloudRendering; break; default: throw new ArgumentOutOfRangeException(); } #endregion //Setup build options BuildOptions options = BuildOptions.None; //Server/Headless mode if (headLessBuild) { options |= BuildOptions.EnableHeadlessMode; } //Copy PDB files string existingCopyPdbFilesOptions = EditorUserBuildSettings.GetPlatformSettings("Standalone", CopyPdbFilesEditorString); if (copyPdbFiles) { EditorUserBuildSettings.SetPlatformSettings("Standalone", CopyPdbFilesEditorString, SettingsManager.CopyPdbFiles ? "true" : "false"); } //Dev build if (devBuild) { options |= BuildOptions.Development; if (autoConnectProfiler) { options |= BuildOptions.ConnectWithProfiler; } if (deepProfiling) { options |= BuildOptions.EnableDeepProfilingSupport; } if (scriptDebugging) { options |= BuildOptions.AllowDebugging; } } //Scripts only if (scriptsOnly) { options |= BuildOptions.BuildScriptsOnly; } //Run build action pre-build Debug.Log("Running build actions pre build..."); try { BuildActions.RunPreActions(Path.GetDirectoryName(buildDir), buildTarget, ref options); } catch (Exception ex) { Debug.LogError($"An error occurred while running a build action's pre build! {ex}"); } Debug.Log("Build actions pre build done!"); Debug.Log("Building player..."); //Build the player BuildReport report = BuildPipeline.BuildPlayer(new BuildPlayerOptions { locationPathName = buildDir, target = buildTarget, options = options, targetGroup = targetGroup, scenes = EditorBuildSettings.scenes.Select(scene => scene.path).ToArray() }); //Set CopyPDBFiles to it's original setting EditorUserBuildSettings.SetPlatformSettings("Standalone", CopyPdbFilesEditorString, existingCopyPdbFilesOptions); //If the build failed if (report.summary.result != BuildResult.Succeeded) { stopwatch.Stop(); Debug.LogError($"Build failed for some reason! Completed in {stopwatch.ElapsedMilliseconds / 1000}s."); return; } //Run Build Action post build try { BuildActions.RunPostActions(Path.GetDirectoryName(buildDir), report); } catch (Exception ex) { Debug.LogError($"An error occurred while running a build action's post build! {ex}"); } //End stopwatch.Stop(); Debug.Log($"Build done in {stopwatch.ElapsedMilliseconds / 1000}s!"); }