いんでぃーづ

ゲームいろいろ、いろいろ自由

Unity : デバッグ用のシーンを挟み込んでビルドする

端末でのデバッグ中に、各種パラメータ値を書き換えられるデバッグ用シーンを入れてビルドしてテストしたりすると思いますが、リリースしたいときに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 のインデックス指定で使用している場合破綻するので、やりたい場合は文字列指定で呼びましょう。


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。