Unity6で新たに導入されたBuild Profiles
は、今まで「Build Settings」や「Player Settings」で設定していた項目を別ファイルに外出しできる機能です。
このBuild Profiles
を使用してビルドする方法や、そのときの注意点などを簡単にまとめてみました。
この記事で動作確認した環境
Unityのバージョン:Unity 6 (6000.0.26f1)
Build Profilesを使うと何がいいの?
ズバリ、用途別にビルド設定を作れるところが良いところだと思います。
例えば下記のような種類別のビルドを作りたい時があります。
- 開発用
- イベント出展用
- リリース用
それぞれのビルドにおいて、デバッグ用のシーンが必要だったり逆に含ませたくなかったり...
シンボルによって動作を分けたかったりします。
従来のUnityだと上記の設定はプラットフォーム(AndroidやWindowsなど)ごとにしか保持できませんでした。
これが、新たに追加された機能Build Profiles
で別々の設定として切り出すことができるようになったんです!
かくいう自分は同じプラットフォーム内でもビルド種別を分けてビルドできるように自作のスクリプトを作っていました。
同じことをしている人...企業の方も多かったのでは...
Build Profileを使ったビルド
Build Profileの作成
Unityのメニューから、「File」->「Build Profiles」を選択しましょう。
下記のようなwindowが表示されるので「Add Build Profile」をクリック。
ここで今までBuild SettingsやPlayer Settingsで設定していた項目を定義できます。
そのままだとBuild Settings相当の設定しか定義できませんが、「Customize player settings」ボタンを押すと、Player Settingsの設定値も定義できます。
Player Settingsの情報を変えないで済むならその方がいいかも
「Customize player settings」ボタンを押すとPlayer Settingsをオーバーライドできますが、よく考えたほうがいいかもしれません。
設定をオーバーライドすると、Player Settingsで全てに共通する設定を変えたくなった時に苦労します。
後述の注意点で補足します。
Build Profileを使ってビルド
Build Profile
を使ってビルドするには、まずそのBuild Profile
にSwitch Profileする必要があります。
Switch Platformみたいなものですね。
コンパイルが入ったりするのでしばらく待ちます。
切り替えができると、左下のBuild Profile
の欄にActive
が表示されます。
この状態で「Build」ボタンを押せばビルドが開始されます。
スクリプトでBuild Profileを指定してビルド
次に、スクリプトでBuild Profile
を使ってビルドする方法を見ていきます。
こちらの素晴らしい記事でも解説されていますが、ざっくり手順をまとめるとこんな感じです。
AssetDatabaseからBuildProfileを取得
string buildProfilePath = "Assets/Settings/Build Profiles/AndroidDemo.asset";
BuildProfile buildProfile = AssetDatabase.LoadAssetAtPath<BuildProfile>(buildProfilePath);
BuildPlayerWithProfileOptionsをBuildProfileを使って生成
BuildPlayerWithProfileOptions buildPlayerWithProfileOptions = new()
{
buildProfile = buildProfile,
locationPathName = "outputpath"
};
BuildPlayerWithProfileOptionsを指定してBuildPlayerを実行
BuildPipeline.BuildPlayer(buildPlayerWithProfileOptions);
スクリプトでデフォルトのBuild Profileに戻したいときは...
デフォルトのBuild Profileとは...?(呼び方不明...)
これです!↓
つまり、左上の「Platforms」に並んでいる...Build Profile
に切り替えていない状態でデフォルトに選択されているやつです。
これに切り替えるスクリプトはこちらです。
BuildProfile.SetActiveBuildProfile(null);
ビルドスクリプトで、普段はデフォルトのBuild Profile
、ビルドは定義したそれぞれのBuild Profile
...のように運用したいときに使えるかもです。
Build Profileの注意点
最後に自分が考えるBuild Profile
の注意点を簡単にまとめます。
Player Settingsの項目をいじったら全部変える必要があるかも
項目によるかもですが、Player Settingsを定義している場合に共通で使う設定を変えたくなったら、全てのBuild Profile
ファイルの設定を変える必要があります。
例えば、Target API Level
を変えるなど...
だるいですね...。
忘れずに変えましょう。
異なるプラットフォームのBuild Profileに切り替えたらswitch Platformが入る
当然と言えば当然ですが、長い待ち時間になるかもなので運用の方法を考えた方がいいかもです。
自分はプロジェクトをGitで管理しており、それぞれのプラットフォームごとにリポジトリをclone、そちらでビルドをすることでswitch platformを防いでおります。
もっと良い運用方法があれば...募集中です!
まとめ
自作ゲームをUnity6へアップデートしたら真っ先に対応しようとしていたのがこのBuild Profile
でした。
この機能嬉しいんですが、もっと早く欲しかったですね。欲しがりさんですね。
Build Profile
は便利ですが、全てに共通する設定を書き換えたい場合に全ファイル更新がする必要がる...など注意点もありました。
この点を考えると、従来の自作ビルドスクリプトで種類別ビルドを作るのもまだ有効な手かもしれないなと思いました。
自分はとりあえずUnity6の標準機能に乗っかって運用してみたいと思います〜