Editor 高级主题
命令行参数

构建播放器管线

在构建播放器时,有时可能希望以某种方式修改构建的播放器。例如,可能希望添加自定义图标、在播放器旁边复制一些文档或构建安装程序。您可以通过编辑器脚本实现此目的,使用 BuildPipeline.BuildPlayer 来运行构建,接着使用所需的任何后期处理代码:

// JS 示例。

import System.Diagnostics;

class ScriptBatch {
    @MenuItem("MyTools/Windows Build With Postprocess")
    static function BuildGame() {
        // 获取文件名。
        var path = EditorUtility.SaveFolderPanel("Choose Location of Built Game", "", "");
        var levels : String[] = ["Assets/Scene1.unity", "Assets/Scene2.unity"];
        
        // 构建播放器。
        BuildPipeline.BuildPlayer(levels, path +"/BuiltGame.exe", BuildTarget.StandaloneWindows, BuildOptions.None);

        // 将文件从项目文件夹复制到构建文件夹,与构建的游戏放在一起。
        FileUtil.CopyFileOrDirectory("Assets/Templates/Readme.txt", path + "Readme.txt");

        // 运行游戏(System.Diagnostics 中的 Process 类)。
        var proc = new Process();
        proc.StartInfo.FileName = path +"/BuiltGame.exe";
        proc.Start();
    }
}
// C# 示例。
using UnityEditor;
using System.Diagnostics;

public class ScriptBatch 
{
    [MenuItem("MyTools/Windows Build With Postprocess")]
    public static void BuildGame ()
    {
        // 获取文件名。
        string path = EditorUtility.SaveFolderPanel("Choose Location of Built Game", "", "");
        string[] levels = new string[] {"Assets/Scene1.unity", "Assets/Scene2.unity"};

        // 构建播放器。
        BuildPipeline.BuildPlayer(levels, path +"/BuiltGame.exe", BuildTarget.StandaloneWindows, BuildOptions.None);

        // 将文件从项目文件夹复制到构建文件夹,与构建的游戏放在一起。
        FileUtil.CopyFileOrDirectory("Assets/Templates/Readme.txt", path + "Readme.txt");

        // 运行游戏(System.Diagnostics 中的 Process 类)。
        Process proc = new Process();
        proc.StartInfo.FileName = path +"/BuiltGame.exe";
        proc.Start();
    }
}

PostProcessBuild 属性

还可以使用 PostProcessBuildAttribute 的 postprocessOrder 参数来定义构建方法的执行顺序,并使用 Process 类从这些方法调用外部脚本,如上一部分所示。此参数用于将构建方法从低到高排序,可为其分配任何负值或正值。

Editor 高级主题
命令行参数