端末でのデバッグ中に、各種パラメータ値を書き換えられるデバッグ用シーンを入れてビルドしてテストしたりすると思いますが、リリースしたいときにBuild Settings からシーン外したりするの手間なので、メニューから一発でやる方法を考えました。
やりかた
エディタスクリプトで EditorBuildSettings.scenes を参照すると、現在のビルド対象シーンの配列が取得できます。
自分の場合は起動シーンをデバッグ用シーンにしたかったので、この配列の先頭に該当シーンを EditorBuildSettingsScene 型で用意して挿入してやり、BuildPipeline.BuildPlayer 関数を呼んでビルドしてやります。
スクリプトを準備
using UnityEditor; using UnityEditor.Callbacks; using System; public class DebugBuilder { [MenuItem("File/DebugBuild")] static void DebugBuild() { EditorBuildSettingsScene[] buildSceneSettings = new EditorBuildSettingsScene[EditorBuildSettings.scenes.Length]; Array.Copy (EditorBuildSettings.scenes, buildSceneSettings, EditorBuildSettings.scenes.Length); // シーンを先頭に追加 ArrayUtility.Insert ( ref buildSceneSettings, 0, new EditorBuildSettingsScene ("Assets/Scenes/Debug.unity", true)); // ビルド実行 BuildPipeline.BuildPlayer ( buildSceneSettings, "ビルド先ファイルのパス", BuildTarget.StandaloneOSXIntel64, // プラットフォーム BuildOptions.Development ); } }
上記のスクリプトを Editor ディレクトリに用意すると、Unityメニューの File の下に DebugBuild が出現するので、クリックするとビルドされます。
・注意
SceneManager.LoadScene の引数を int のインデックス指定で使用している場合破綻するので、やりたい場合は文字列指定で呼びましょう。