Windows ランタイムサポート
IL2CPP ビルド時間の最適化

IL2CPP のしくみ

IL2CPP でビルドを始める際に、Unity は自動的に以下の処理を行います。

  1. Unity スクリプティング API コードを通常の .NET DLL にコンパイルします (マネージドアセンブリ)。

  2. スクリプトの一部ではないすべてのマネージドアセンブリ (プラグインや基本クラスライブラリなど) は Unused Bytecode Stripper という Unity ツールによって処理されます。Unused Bytecode Stripper は使われていないクラスとメソッドを見つけ、 DLL (Dynamic Link Library) から削除します。この処理は、ビルドされたゲームのサイズを顕著に削減します。

  3. それから、マネージドアセンブリはすべて、標準の C++ コードに変換されます。

4.生成された C++ コードと IL2CPP のランタイムの部分は、ネイティブのプラットフォームコンパイラーを使ってコンパイルされます。

  1. 最後に、コードは、ターゲットとするプラットフォームに基づき実行ファイルか DLL のいずれかにリンクされます。
IL2CPP を使ってプロジェクトをビルドする場合の、自動処理の図
IL2CPP を使ってプロジェクトをビルドする場合の、自動処理の図

IL2CPP には、スクリプトの属性によって制御できる有用なオプションがいくつかあります。詳細は、プラットフォーム依存コンパイル を参照してください。

Windows ランタイムサポート
IL2CPP ビルド時間の最適化