IL2CPP でビルドを始める際に、Unity は自動的に以下の処理を行います。
Unity スクリプティング API コードを通常の .NET DLL にコンパイルします (マネージドアセンブリ)。
スクリプトの一部ではないすべてのマネージドアセンブリ (プラグインや基本クラスライブラリなど) は Unused Bytecode Stripper という Unity ツールによって処理されます。Unused Bytecode Stripper は使われていないクラスとメソッドを見つけ、 DLL (Dynamic Link Library) から削除します。この処理は、ビルドされたゲームのサイズを顕著に削減します。
それから、マネージドアセンブリはすべて、標準の C++ コードに変換されます。
4.生成された C++ コードと IL2CPP のランタイムの部分は、ネイティブのプラットフォームコンパイラーを使ってコンパイルされます。
IL2CPP には、スクリプトの属性によって制御できる有用なオプションがいくつかあります。詳細は、プラットフォーム依存コンパイル を参照してください。