unityでいってみよう!

unityがチョットワカル位の人のブログ

Unityでインクリメントビルドを試してみよう!

はじめに

Unityで各プラットフォーム向けのバイナリ(実行ファイル)を作成する場合、大まかに下記の手順を踏みます。

  1. UnityEditorが各プラットフォーム向けにプロジェクトを出力する
  2. 各プラットフォーム向けの環境(Xcode,Android Studio)で上記プロジェクトをビルドする

今回説明するインクリメンタルビルドとは1のプロセスで変更のなりファイルを更新しないことで、2のプロセスの時間を短縮することを目的としています。

インクリメンタルビルドの手順

Androidプラットフォームの場合

f:id:kimukats:20211115172057p:plain

  1. Export Projectにチェックを入れ、Exportを実行します。

  2. プロジェクトの出力先として前回と同じディレクトリを選択します。

  3. Android Studioコマンドプロンプトから gradelw buildを実行してプロジェクトをビルドします。

iOSプラットフォームの場合

  1. Buildを実行します

  2. プロジェクトの出力先として前回と同じフォルダーを選択します。

  3. 下記のダイヤログが表示される為、Appendを選択します。  f:id:kimukats:20211115113522p:plain

  4. 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へ半減しました。

今回の検証では、プロジェクトをまったく変更していない(差分が全くない)という状況下での検証でした。 差分が大きいと、プロジェクトをビルドするプロセスが長くなることが予想されます。