Version: 2018.1
エディターの高度なトピック
コマンドライン引数

ビルドプレイヤーパイプライン

プレイヤーをビルドするとき、ビルドされたプレイヤーをなんらか修正したい場合があります。例えばカスタムアイコンの追加、プレイヤーの隣にドキュメントをコピーしたり、またはインストーラーを構築する、などあるかもしれません。これらはエディタースクリプトの 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 のクラスを処理します)
        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 proc = new Process();
        proc.StartInfo.FileName = path + "/BuiltGame.exe";
        proc.Start();
    }
}

PostProcessBuild 属性

PostProcessBuildAttributeの postprocessOrder パラメーターによってビルドメソッドの実行順を定義し、最後のメソッドで Process クラスによって外部スクリプトを呼び出すことが可能です。このパラメーターは昇順でソートされ、使用します。そして負、または正の値を設定することができます。

エディターの高度なトピック
コマンドライン引数