仅构建项目中的脚本。
在使用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
重新生成应用程序,然后启动它。应用程序现在将显示背景颜色的随机更改。但是,添加的立方体和球体不可见。