Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


BuildScriptsOnly

Only build the scripts in a project.
Read time 3 minutesLast updated 5 days ago

Definition

  • Type: Field
  • Namespace: UnityEditor
  • Assembly: UnityEditor.CoreModule
BuildScriptsOnly = 32768

Remarks

Before you can use
BuildScriptsOnly
, you need to build the whole Project. Then you can run builds that only have script changes. Rebuilding the player data will be skipped for faster iteration speed.
Platforms which support the incremental build pipeline will automatically run scripts only builds if Unity detects that the data files have not changed, even if
BuildScriptsOnly
is not used. You can still use
BuildScriptsOnly
to force a script only build and ignore any pending player data changes.
The following script example uses
BuildScriptsOnly
. The script builds the entire Project initially. After you've run the script for the first time, you can use the script to only compile any changes you make to the script. To try this out, add the following Editor script and the game script to your project.
Attach the following simple script to an empty GameObject in the scene:
Now run the
Build/Build scripts
example. This builds an executable. Run that executable and a dark blue window with the label appears. Next add some cubes and spheres to the Project. Make the following script changes:
Finally, swap the commented lines in the
EditorExample
script:
Use the
Build/Build scripts
to regenerate the application and then launch it. The application will now show random changes to the background color. However the added cubes and spheres are not visible.

Examples

using UnityEditor;using UnityEngine;namespace BuildDocExamples{ public class BuildOptions_EditorExamples : MonoBehaviour { [MenuItem("BuildDocExamples/Build/Development and strict mode build")] public static void DevStrictModeBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scene.unity" }; buildPlayerOptions.locationPathName = "scriptBuilds"; buildPlayerOptions.target = BuildTarget.StandaloneOSX; // use these options for a development and strict mode build buildPlayerOptions.options = BuildOptions.Development | BuildOptions.StrictMode; BuildPipeline.BuildPlayer(buildPlayerOptions); } [MenuItem("BuildDocExamples/Build/Scripts only build")] public static void ScriptsOnlyBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scene.unity" }; buildPlayerOptions.locationPathName = "scriptBuilds"; buildPlayerOptions.target = BuildTarget.StandaloneOSX; // use these options for building scripts buildPlayerOptions.options = BuildOptions.BuildScriptsOnly | BuildOptions.Development; BuildPipeline.BuildPlayer(buildPlayerOptions); } [MenuItem("BuildDocExamples/Build/DetailedBuildReport build")] public static void DetailedBuildReportExample() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scene.unity" }; buildPlayerOptions.locationPathName = "DetailedReportBuild/MyGame.exe"; buildPlayerOptions.target = BuildTarget.StandaloneWindows64; buildPlayerOptions.options = BuildOptions.DetailedBuildReport; var buildReport = BuildPipeline.BuildPlayer(buildPlayerOptions); } }}
using UnityEngine;namespace BuildDocExamples{ // Change the camera to the usual blue color and display a label. public class BuildOptions_BuildScriptsOnlyExampleClass1 : MonoBehaviour { private Camera cam; void Awake() { cam = Camera.main; cam.clearFlags = CameraClearFlags.SolidColor; } void OnGUI() { GUI.Label(new Rect(100, 100, 100, 50), "ExampleClass"); } }}
using UnityEngine;namespace BuildDocExamples{ public class BuildOptions_BuildScriptsOnlyExampleClass2 : MonoBehaviour { private Camera cam; // added line private float delay; void Awake() { delay = 0.0f; cam = Camera.main; cam.clearFlags = CameraClearFlags.SolidColor; } // added script code void FixedUpdate() { delay = delay + Time.deltaTime; if (delay > 0.5f) { cam.backgroundColor = new Color(0.0f, 0.0f, Random.Range(0.0f, 0.25f)); delay = 0.0f; } } void OnGUI() { GUI.Label(new Rect(100, 100, 100, 50), "ExampleClass"); } }}