Legacy Documentation: Version 2018.1 (Go to current version)
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

BuildOptions.BuildScriptsOnly

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

Only build the scripts in a Project.

Before you can use BuildScriptsOnly, you need to build the whole Project. Then you can run builds that only have script 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 the script changes. To use the script create a project and add the Editor script and the game script below.

#pragma strict
public class EditorExample extends MonoBehaviour {
	@MenuItem("Build/Build scripts")
	public static function MyBuild() {
		var buildPlayerOptions: BuildPlayerOptions = new BuildPlayerOptions();
		buildPlayerOptions.scenes = ["Assets/scene.unity"];
		buildPlayerOptions.locationPathName = "scriptBuilds";
		buildPlayerOptions.target = BuildTarget.StandaloneOSX;
		// use these options for the first build
		buildPlayerOptions.options = BuildOptions.Development;
		// buildPlayerOptions.options = BuildOptions.BuildScriptsOnly | BuildOptions.Development;
		BuildPipeline.BuildPlayer(buildPlayerOptions);
	}
}
using UnityEditor;
using UnityEngine;

public class EditorExample : MonoBehaviour { [MenuItem("Build/Build scripts")] public static void MyBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scene.unity" }; buildPlayerOptions.locationPathName = "scriptBuilds"; buildPlayerOptions.target = BuildTarget.StandaloneOSX;

// use these options for the first build buildPlayerOptions.options = BuildOptions.Development;

// use these options for building scripts // buildPlayerOptions.options = BuildOptions.BuildScriptsOnly | BuildOptions.Development;

BuildPipeline.BuildPlayer(buildPlayerOptions); } }

Attach the following simple script to an empty GameObject in the scene:

#pragma strict
// Change the camera to the usual blue color and display a label.
private var cam: Camera;
function Awake() {
	cam = Camera.main;
	cam.clearFlags = CameraClearFlags.SolidColor;
}
function OnGUI() {
	GUI.Label(new Rect(100, 100, 100, 50), "ExampleClass");
}
using UnityEngine;

// Change the camera to the usual blue color and display a label.

public class ExampleClass : MonoBehaviour { private Camera cam;

void Awake() { cam = Camera.main; cam.clearFlags = CameraClearFlags.SolidColor; }

void OnGUI() { GUI.Label(new Rect(100, 100, 100, 50), "ExampleClass"); } }

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:

#pragma strict
private var cam: Camera;
private var delay: float;
function Awake() {
	delay = 0.0f;
	cam = Camera.main;
	cam.clearFlags = CameraClearFlags.SolidColor;
}
// added script code
function 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;
	}
}
function OnGUI() {
	GUI.Label(new Rect(100, 100, 100, 50), "ExampleClass");
}
using UnityEngine;

public class ExampleClass : 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"); } }

Finally, swap the commented lines in the EditorExample script:

#pragma strict
public class EditorExample extends MonoBehaviour {
	@MenuItem("Build/Build scripts")
	public static function MyBuild() {
		var buildPlayerOptions: BuildPlayerOptions = new BuildPlayerOptions();
		buildPlayerOptions.scenes = ["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);
	}
}
using UnityEditor;
using UnityEngine;

public class EditorExample : MonoBehaviour { [MenuItem("Build/Build scripts")] public static void MyBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scene.unity" }; buildPlayerOptions.locationPathName = "scriptBuilds"; buildPlayerOptions.target = BuildTarget.StandaloneOSX;

// use these options for the first build // buildPlayerOptions.options = BuildOptions.Development;

// use these options for building scripts buildPlayerOptions.options = BuildOptions.BuildScriptsOnly | BuildOptions.Development;

BuildPipeline.BuildPlayer(buildPlayerOptions); } }

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.

Did you find this page useful? Please give it a rating: