開発中のイテレーションを高速化するために、Unity はインクリメンタルな (増分) ビルドパイプラインを使用しており、アプリケーションの一部が前回のビルド以降に変更された場合のみ再ビルドされます。これには、アセットシリアライゼーション、コードコンパイル、データ圧縮、署名などのビルドステップが含まれます。デフォルトでは、Unity はリリース用と開発用の両方のビルドにインクリメンタルビルドパイプラインを使用します。
インクリメンタルビルドパイプラインは、Scripts Only Build 機能も自動化します。 そのため、インクリメンタルビルドを使用しないプラットフォームでは、Scripts Only Build は Build Settings ウィンドウでのみ利用可能です。
インクリメンタルビルドパイプラインは、Mono と IL2CPP スクリプトバックエンド の両方で動作します。ただし、出力ファイルの構造は、プロジェクトがどちらのスクリプトバックエンドを使用するかによって変わります。
Unity は以下のプラットフォームに対して、インクリメンタルビルドパイプラインをサポートします。
あるシナリオでは、インクリメンタルビルドパイプラインを使用しないビルドを作成することが有用または必要になる場合があります。
インクリメンタルでない、クリーンなビルドを作成するためには、以下を行います。
一般に、インクリメンタルビルド後に期待した変更がなく、インクリメンタルビルドパイプラインに問題があると考えられる場合は、クリーンビルドを作成します。この問題の最も一般的な理由は、アセットに影響を与えるビルドプロセスのコールバックの実装または変更によるものです。
ビルドプロセスは、実装したコールバックがどのようにアセットに影響を与えたかを知ることはできないので、アセットをどのように再ビルドするかを決定することができません。Unity は、ファイルの依存関係が変更された場合のみファイルを再生成します。つまり、コールバックが Unity が生成するファイルを変更し、ファイルの依存関係が変更されない場合、コールバックは既に変更されたファイルに変更を適用します。例えば、コールバックが Android App Manifest に新しいエントリーを追加し、Android App Manifest の依存関係が変更されない場合、コールバックは新しいエントリーを追加したままで、無効なファイルが生成されることになります。
If you change a callback or its input data and you want Unity to rebuild assets that the callback affects, create a clean build. Examples of callbacks include:
ノート: アセットに変更を加える場合、Unity はアプリケーションをビルドする際にそのアセットを再ビルドします。これには、それに影響するすべてのコールバックの処理も含まれます。つまり、アセットを変更する際にビルドプロセスのコールバックのみを変更する場合は、クリーン ビルドを作成する必要はありません。