static void Build(string locationPathName, BuildTarget buildTarget) { if (buildTarget != EditorUserBuildSettings.activeBuildTarget) { BuildTargetGroup targetGroup = PlatformUtility.ConvertBuildTarget(buildTarget); EditorUserBuildSettings.SwitchActiveBuildTarget(targetGroup, buildTarget); } BuildPlayerOptions buildPlayerOptions = GetDefaultPlayerOptions(); buildPlayerOptions.locationPathName = locationPathName; buildPlayerOptions.target = buildTarget; var report = BuildPipeline.BuildPlayer(buildPlayerOptions); switch (report.summary.result) { case UnityEditor.Build.Reporting.BuildResult.Succeeded: Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Build succeeded! Executable is located at: {0}", buildPlayerOptions.locationPathName); Console.ResetColor(); break; default: Environment.ExitCode = 1; break; } }
public string GetOutputPath(BuildTarget buildTarget) { var extension = PlatformUtility.GetExtension(buildTarget); var defaultDirectory = "Builds"; var defaultFilename = string.Concat(PlayerSettings.productName, extension); var outputDirectory = defaultDirectory; var outputFilename = defaultFilename; if (TryGetArgument("output", out var output)) { if (Path.HasExtension(output)) { outputDirectory = Path.GetDirectoryName(output); outputFilename = Path.GetFileName(output); } else { outputDirectory = output; outputFilename = defaultFilename; } } if (TryGetArgument("name", out string name)) { outputFilename = Path.HasExtension(name) ? name : string.Concat(name, extension); } if (PlatformUtility.DoesTargetBuildAsFolder(buildTarget)) { return(outputDirectory); } return(Path.Combine(outputDirectory, outputFilename)); }