Version: 2021.3

BuildOptions.BuildScriptsOnly

切换到手册

描述

仅在项目中构建脚本。

在使用 BuildScriptsOnly 之前,需要构建整个项目。然后,可以运行仅具有脚本更改的构建。

以下脚本示例便使用了 BuildScriptsOnly。该脚本最初会构建整个项目。在第一次运行脚本之后,可以使用该脚本仅编译脚本更改。要使用该脚本,请创建一个项目并在下面添加编辑器脚本和游戏脚本。

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); } }

将以下简单脚本附加到场景中的空游戏对象:

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"); } }

现在运行 Build/Build scripts 示例。这会构建一个可执行文件。运行该可执行文件,随后将显示带有标签的深蓝色窗口。接下来,在项目中添加一些立方体和球体。进行以下脚本更改:

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"); } }

最后,交换 EditorExample 脚本中带注释的行:

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); } }

使用 Build/Build scripts 重新生成应用程序,然后将其启动。该应用程序现在将显示背景颜色的随机变化。但是,添加的立方体和球体不可见。