版本: Unity 6 (6000.0)
语言English
  • C#

BuildOptions.BuildScriptsOnly

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

仅构建项目中的脚本。

在使用BuildScriptsOnly之前,您需要构建整个项目。然后,您可以运行仅包含脚本更改的构建。将跳过重建播放器数据以加快迭代速度。

支持增量构建管线的平台将在 Unity 检测到数据文件未更改时自动运行仅脚本构建,即使未使用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重新生成应用程序,然后启动它。应用程序现在将显示背景颜色的随机更改。但是,添加的立方体和球体不可见。