0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity6でBuild Profileを使用してビルドしてみる&注意点

Posted at

Unity6で新たに導入されたBuild Profilesは、今まで「Build Settings」や「Player Settings」で設定していた項目を別ファイルに外出しできる機能です。
このBuild Profilesを使用してビルドする方法や、そのときの注意点などを簡単にまとめてみました。
image.png

この記事で動作確認した環境
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」をクリック。
スクリーンショット 2024-11-22 18.28.01.png

次に対象のプラットフォームを選択します。
スクリーンショット 2024-11-22 18.29.27.png

これで新しいBuild Profileが一つ追加されます。
スクリーンショット 2024-11-22 18.30.42.png

ここで今まで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みたいなものですね。
コンパイルが入ったりするのでしばらく待ちます。

スクリーンショット 2024-11-22 18.35.52.png

切り替えができると、左下の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とは...?(呼び方不明...)
これです!↓
スクリーンショット 2024-11-22 18.53.30.png

つまり、左上の「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の標準機能に乗っかって運用してみたいと思います〜

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?