tk3118’s blog

技術ブログっぽいただのブログです。

【Unity】リフレクションでUnityのBuildAndRunを呼び出す

概要

以前Unityで自前のビルド処理を書かなければならないことがあり、 その際は、自前でビルド後のアプリケーション実行処理(BuildAndRunのRunの部分)も書いていたのですが、 そもそもリフレクションで良くねという話だったので、そのメモです...

環境

  • Unity2018.2.21f1

実装サンプル(C#)

[MenuItem("ReflectionTest/BuildAndRun")]
public static void BuildAndRun() 
{   

    // Unityバージョンによってメソッド名は変わる可能性があります...
    var reflectionMethodName = "CallBuildMethods";
    var reflectionFlags =  BindingFlags.NonPublic | BindingFlags.Static;

    var buildAndRun = typeof(BuildPlayerWindow).GetMethod(reflectionMethodName, reflectionFlags);

    if(buildAndRun != null){

        // UnityEngine.Objectとの間違いに注意.
        buildAndRun.Invoke(null, new System.Object[]{ true, BuildOptions.AutoRunPlayer | BuildOptions.StrictMode });
    }
}

参考資料