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. 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 the script changes. To use the script create a project and add the Editor script and the game script below.
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:
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:
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:
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:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.