はじめに
Unityで各プラットフォーム向けのバイナリ(実行ファイル)を作成する場合、大まかに下記の手順を踏みます。
- UnityEditorが各プラットフォーム向けにプロジェクトを出力する
- 各プラットフォーム向けの環境(Xcode,Android Studio)で上記プロジェクトをビルドする
今回説明するインクリメンタルビルドとは1のプロセスで変更のなりファイルを更新しないことで、2のプロセスの時間を短縮することを目的としています。
インクリメンタルビルドの手順
Androidプラットフォームの場合
Export Projectにチェックを入れ、Exportを実行します。
プロジェクトの出力先として前回と同じディレクトリを選択します。
Android Studioやコマンドプロンプトから gradelw buildを実行してプロジェクトをビルドします。
iOSプラットフォームの場合
Buildを実行します
プロジェクトの出力先として前回と同じフォルダーを選択します。
下記のダイヤログが表示される為、Appendを選択します。
xcodeで出力されたプロジェクトをビルドします。
結果
インクリメンタルビルドを行うと1のプロセスの処理時間が延び、2のプロセスの処理時間が短くなります。 差分があったかどうかの判定に時間がかかっているということなのでしょう。
Unity Ediorからxcodeプロジェクトを出力する迄に掛かった時間
試行回数 | Append | Replace |
---|---|---|
1 | 44 seconds (44363 ms) | 31 seconds (31496 ms) |
2 | 40 seconds (39511 ms) | 30 seconds (29881 ms) |
3 | 32 seconds (32038 ms) | 31 seconds (31099 ms) |
xcodeでプロジェクトをビルドするのにかかった時間
Append | Replace |
---|---|
14.9 sec | 29.2 sec |
AndroidプラットフォームではUnityEditorからGradleプロジェクトを出力する迄の時間にかかった時間に目立った変化はありませんでしたが、GradleプロジェクトからAPKをビルドする迄の時間が50 sec から 24 secへ半減しました。
今回の検証では、プロジェクトをまったく変更していない(差分が全くない)という状況下での検証でした。 差分が大きいと、プロジェクトをビルドするプロセスが長くなることが予想されます。