0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity 6のBuild Profilesを使って、開発用・本番用などのビルド設定を分けて管理する

0
Posted at

Unity 6では、従来の「Build Settings」ウィンドウに代わって「Build Profiles」という新しいビルド設定の仕組みが導入されました。この記事では、Build Profilesの基本から、開発用/本番用のプロファイルを分けて運用する方法まで、実際に触ってみた内容をまとめます。

環境

Unity 6000.4.9f1

1. Build Profilesとは

Build Profilesは、Unity 6(6000.0)から導入された、ビルド設定を「プロファイル」というアセット単位で管理できる仕組みです。メニューの File > Build Profiles から開けます(従来のBuild Settingsはこのウィンドウに置き換えられました)。

これまでのUnityでは、ビルド設定は基本的にプロジェクトに対して1セットしか持てませんでした。そのため「開発ビルドと本番ビルドでシーン構成やDefineシンボルを変えたい」といった場合、手動で設定を切り替えたり、ビルドスクリプトを自作したりする必要がありました。

Build Profilesでは、次のような設定をプロファイルごとに持てます。

・ビルド対象のプラットフォーム
・Scene List(ビルドに含めるシーンの一覧)
・Scripting Defines(スクリプトシンボル)
・Player Settingsのオーバーライド
・Graphics / Quality設定のオーバーライド(Unity 6.1以降で拡充)
・Development Buildなどのビルドオプション

ウィンドウ左側には「Platforms(プラットフォームプロファイル)」と「Build Profiles(自分で作成したカスタムプロファイル)」が並びます。Platformsは従来のプラットフォーム切り替えに相当するもので、カスタマイズしたい場合はカスタムプロファイルを作成する、という関係です。

※Unity 6.4では、新規プロジェクトの場合、Platformsの一覧が非表示になっていることがあります。
表示したい場合は Edit > Project Settings > Editor > Build Profiles から Hide Classic Platforms を無効にします。

プロファイルは .asset ファイルとしてプロジェクト内(デフォルトでは Assets/Settings/Build Profiles/)に保存されるため、バージョン管理でチームに共有できるのも大きなポイントです。

2. Build Profileを作成する

作成手順はシンプルです。

  1. File > Build Profiles でウィンドウを開く
  2. 左上の Add Build Profile(+ボタン)をクリック
  3. Platform Browser から対象プラットフォームを選択する
  4. 作成されたプロファイルに Dev / Prod などの名前を付ける

作成したプロファイルは左側のリストに表示され、名前の変更(F2キーや右クリック)、複製、削除ができます。「Dev」「Prod」など、用途がわかる名前を付けておくと管理しやすくなります。

複数のプロファイルがある場合、実際にビルドやPlayモードで使われるのは「アクティブ」なプロファイルです。プロファイル画面の Switch Profile ボタンで切り替えます。アクティブなプロファイルにのみ Build / Build And Run ボタンが表示されます。

3. Scene ListをProfileごとに分ける

Build Profilesの便利な点のひとつが、プロファイルごとにScene Listを持てることです。

デフォルトでは Use Global Scene List(共有シーンリストを使う)が有効になっています。プロファイルに「Scene List」セクションを追加すると、そのプロファイル専用のシーンリストを編集できるようになります。

活用例としては、次のようなものが考えられます。

環境 使い方
開発用 デバッグメニューシーンやテスト用サンドボックスシーンを先頭に追加
本番用 タイトルシーンから始まる正規のシーン構成のみ

シーンの追加は、共有リストと同様にヒエラルキーの Add Open Scenes やドラッグ&ドロップで行えます。「ビルドのたびにシーンリストを組み替える」作業から解放されるのは、地味ながら大きな改善です。

image.png

ただし注意点として、「Scene List」セクションを追加すると、Sceneをすべて設定し直す必要があります。

[Prod] など通常ビルドはGlobal Scene Listを使い、
[Dev] など一部だけシーンを追加したいProfileでは、「Scene List」セクションを有効にして専用のScene Listを持たせます。


そのため、共通シーンを追加・削除した場合は、専用Scene List側も確認する必要があります。

4. Scripting Definesを設定する

各プロファイルには「Scripting Defines」セクションを追加でき、そのプロファイル専用のスクリプトシンボルを追加できます。ここで設定したシンボルは、Project Settings > Player で設定したグローバルなシンボルに「追加」される形で適用されます。

たとえば開発用プロファイルに DEV_BUILD を追加しておけば、コード側では次のように分岐できます。

public class GameBootstrap : MonoBehaviour {

    void Start() {
#if DEV_BUILD
        DebugMenu.Enable();
        Debug.Log("開発ビルドで起動しました");
#endif
        StartGame();
    }
}

注意点として、Scripting Definesはコンパイルに影響するため、アクティブなプロファイルのシンボルのみがエディタとビルドに反映されます。プロファイルを切り替えるとスクリプトの再コンパイルが走ります。「プロファイルにシンボルを書いたのに反映されない」という場合は、そのプロファイルがアクティブになっているかを確認しましょう。

image.png

5. Player Settings Overridesを使う

プロファイルの「Player Settings」セクションで、そのプロファイル専用のPlayer Settingsを持てます。

初期値は Edit > Project Settings > Player のグローバル設定から継承され、そこから必要な項目だけを上書きするイメージです。「⋮」のResetを選ぶと、そのセクション内の設定値をProject Settings側のグローバル値に戻せます。

〇上書きできる項目の例:

  1. Product Name: 開発版は「MyGame (Dev)」、本番版は「MyGame」
  2. Bundle ID: 開発版と本番版でBundle IDを分けて共存インストール可能に
  3. Icon: 開発版だけ目立つデバッグ用アイコンに変更
  4. Version / Bundle Version Code などのバージョン情報

いくつか押さえておきたい仕様があります。

Player Settingsのオーバーライドはカスタムプロファイルでのみ可能です。左側の「Platforms」にあるプラットフォームプロファイルでは使えないため、カスタムプロファイルを作成する必要があります。
アクティブなプロファイルのオーバーライドはPlayモードにも反映されます。
アクティブなプロファイルでは、PlayerSettings APIによる変更がオーバーライド値の方に反映されます。ビルドスクリプトからPlayer Settingsを操作している場合は挙動に注意が必要です。

さらにUnity 6.1以降では、GraphicsやQualityの設定もプロファイルごとにオーバーライドできるようになっており、プラットフォーム別の品質チューニングにも活用できます。

image.png

6. 開発用 / 本番用 Profileの例

実際の運用イメージとして、Windows向けに2つのプロファイルを作る例を示します。

Windows - Dev プロファイル

項目 設定
Scene List 専用リスト(DebugMenuシーン → タイトル → ゲーム本編)
Scripting Defines DEV_BUILD, ENABLE_CHEATS
Player Settings Product Name: MyGame (Dev) / Bundle ID: com.example.mygame.dev
Platform Settings Development Build: ON / Script Debugging: ON

Windows - Release プロファイル

項目 設定
Scene List Global Scene List
Scripting Defines なし(グローバル設定のみ)
Player Settings なし
Platform Settings Development Build: OFF

この構成にしておけば、ビルド前の作業は「プロファイルをSet Activeで切り替えてBuildを押す」だけになります。CI/CDで使う場合も、コマンドライン引数 -activeBuildProfile にプロファイルアセットのパスを渡すか、BuildPipeline.BuildPlayerBuildPlayerWithProfileOptions を渡すことで、プロファイル指定のビルドが可能です。

using UnityEditor;
using UnityEditor.Build.Profile;

public static class BuildRunner {

    public static void BuildRelease() {
        var profile = AssetDatabase.LoadAssetAtPath<BuildProfile>(
            "Assets/Settings/Build Profiles/Windows_Prod.asset");

        var options = new BuildPlayerWithProfileOptions {
            buildProfile = profile,
            locationPathName = "Builds/Release/MyGame.exe",
        };
        BuildPipeline.BuildPlayer(options);
    }
}

※CI/CDでは、Editor起動後にスクリプト内でProfileを切り替えるより、
Unity起動時のコマンドライン引数で -activeBuildProfile を指定する方が安全です。

7. 使ってみて便利そうな点

実際に触ってみて、特に便利だと感じた点をまとめます。

〇 設定の切り替えミスが減る

「本番ビルドにデバッグシーンが混入していた」「Defineシンボルを外し忘れた」といった、手動切り替えにありがちな事故を構造的に防げます。

〇 プロファイルがアセットなのでチーム共有できる

バージョン管理に含めれば、チーム全員が同じビルド構成を使えます。「ビルド手順書」の多くをプロファイルに置き換えられます。

〇 自作ビルドスクリプトを減らせる

これまでシーンリストの差し替えやシンボルの付け替えのために書いていたエディタ拡張が、標準機能で済むようになります。

〇 1プラットフォームに複数構成を持てる

同じWindows向けでも、Steam版/DRMフリー版/デモ版のように配布形態ごとのプロファイルを並べておけます。

〇 Playモードにも一部反映される

アクティブプロファイルのScripting DefinesやPlayer Settings Overridesなどは、エディタ上の動作確認にも影響します。
そのため、開発用Profileをアクティブにしておけば、開発ビルド相当のDefineや設定で確認しやすくなります。

ただし、Scene Listは通常のPlayモード開始シーンを切り替えるものではなく、ビルドに含めるシーン一覧として扱います。

8. 注意点

一方で、運用上気をつけたい点もあります。

〇 反映されるのはアクティブなプロファイルだけ

プロファイルを編集しても、アクティブにしない限りScripting DefinesやPlayer Settingsは反映されません。「設定したのに効かない」の原因の多くはこれです。

〇 プロファイル切り替えで再コンパイルが走る

Defineシンボルが異なるプロファイル間で切り替えると再コンパイルが発生します。プラットフォームまで異なる場合は再インポートも走るため、大規模プロジェクトでは切り替えコストを考慮しましょう。

〇 プラットフォームプロファイルではオーバーライド不可

Player SettingsやScene Listの独自設定はカスタムプロファイルでのみ可能です。デフォルトの「Platforms」側を使い続けている場合は恩恵を受けられません。

〇 PlayerSettings APIとの相互作用

アクティブプロファイルに「Player Settings」セクションがあると、PlayerSettings APIでの変更はオーバーライド側に書き込まれます。既存のビルドスクリプトがグローバル設定を書き換える前提になっている場合は、挙動を確認してから移行しましょう。

〇 Unity 6以降専用

Unity 2022 LTS以前のプロジェクトでは使えません。また、Graphics/Quality設定のオーバーライドなど一部機能はUnity 6.1以降で追加されたものなので、使用中のバージョンのマニュアルを確認してください。

〇 プロファイルの増やしすぎに注意

構成が細分化しすぎると、どのプロファイルが正かわからなくなります。命名規則を決め、不要になったプロファイルは整理するのがおすすめです。

まとめ

Build Profilesは、これまで「各自の運用ルール」や「自作スクリプト」でカバーしていたビルド構成の切り替えを、Unity標準の仕組みとして提供してくれる機能です。特に、開発用/本番用でシーンやシンボル、アプリ名を分けたいケースでは、導入するだけでビルド作業の安全性と再現性が大きく向上します。Unity 6でプロジェクトを始めるなら、早い段階でプロファイル構成を決めておくとよいでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?