From 3a2e37461f04343ef2f2337bb21331d5d5d25947 Mon Sep 17 00:00:00 2001 From: Michael Buhler Date: Wed, 29 Jan 2025 11:01:12 +0700 Subject: [PATCH 1/2] Document new `buildProfile` config option Relates to https://github.com/game-ci/unity-builder/issues/674 Relates to https://github.com/game-ci/unity-builder/pull/685 --- docs/03-github/04-builder.mdx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/docs/03-github/04-builder.mdx b/docs/03-github/04-builder.mdx index 5d9f277a..c76d35e4 100644 --- a/docs/03-github/04-builder.mdx +++ b/docs/03-github/04-builder.mdx @@ -162,9 +162,24 @@ _**required:** `false`_ _**default:** `""`_ #### projectPath Specify the path to your Unity project to be built. The path should be relative to the root of your -project. +repository. -_**required:** `false`_ _**default:** ``_ +_**required:** `false`_ _**default:** ``_ + +#### buildProfile + +Provide a path to a build profile. The path should be relative to the root of your Unity project +(i.e. relative to `projectPath`). See the +[Unity documentation](https://docs.unity3d.com/Manual/build-profiles.html) for more information on +using build profiles. + +```yaml +- uses: game-ci/unity-builder@v4 + with: + buildProfile: 'Assets/Settings/Build Profiles/WindowsDemo.asset' +``` + +_**required:** `false`_ _**default:** Unity will do a platform build for the `targetPlatform`._ #### buildName From 2f5ba2f2d627518511ddfd5cc9279fc75cdd1340 Mon Sep 17 00:00:00 2001 From: Michael Buhler Date: Fri, 31 Jan 2025 14:09:12 +0700 Subject: [PATCH 2/2] Update BuildScript.cs with BuildProfile example --- example/BuildScript.cs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/example/BuildScript.cs b/example/BuildScript.cs index 96d47a1d..dad9dfaf 100644 --- a/example/BuildScript.cs +++ b/example/BuildScript.cs @@ -4,6 +4,9 @@ using System.Linq; using UnityEditor; using UnityEditor.Build.Reporting; +#if UNITY_6000_0_OR_NEWER +using UnityEditor.Build.Profile; +#endif namespace UnityBuilderAction { @@ -89,6 +92,31 @@ public static void Build() Build(buildTarget, buildSubtarget, options["customBuildPath"]); } +#if UNITY_6000_0_OR_NEWER + public static void BuildWithProfile() + { + // Gather values from args + Dictionary options = GetValidatedOptions(); + + // Load build profile from Assets folder + BuildProfile buildProfile = AssetDatabase.LoadAssetAtPath(options["customBuildProfile"]); + + // Set it as active + BuildProfile.SetActiveBuildProfile(buildProfile); + + // Define BuildPlayerWithProfileOptions + var buildPlayerWithProfileOptions = new BuildPlayerWithProfileOptions { + buildProfile = buildProfile, + locationPathName = options["customBuildPath"], + options = buildOptions, + }; + + BuildSummary buildSummary = BuildPipeline.BuildPlayer(buildPlayerWithProfileOptions).summary; + ReportSummary(buildSummary); + ExitWithResult(buildSummary.result); + } +#endif + private static Dictionary GetValidatedOptions() { ParseCommandLineArguments(out Dictionary validatedOptions);