おもちゃラボ

Unityで遊びを作ってます

【Unity2017】IL2CPPを使ってAndroidビルドする方法

IL2CPP(ILはIntermidiate Languageの略でC#の中間言語、CPPはC Plus Plusのことです。)を使えば、C#をC++に変換してバイナリを生成するため、高速に動作させることができます(そのぶんビルド時間は伸びちゃいますけど・・・)。

ここでは、Android用ビルドの設定(Android StudioとJDK)は終わっているものとします。この方法はUnity5の教科書を参照ください。

NDKのインストール

Unity→Preferenceを選択し、External Toolsのタブを開いてください。NDKの横の「Downloadボタン」をクリックしてNDK(Native Development Kit)のパッケージをダウンロードします。

f:id:nn_hokuson:20170803192823p:plain:w360

ダウンロードした、android-ndk-r10e-darwin-x86_64.binが曲者で、ダブルクリックでは展開できない罠・・・

コマンドラインから開きます。上の.binファイルと同じ階層にcdで移動してから、次のコマンドを打ってください。

chmod a+x android-ndk-r10e-darwin-x86_64.bin 
./android-ndk-r10e-darwin-x86_64.bin 

実行すると展開が始まり、最後に「Everything is Ok」と出れば成功です。

f:id:nn_hokuson:20170803193023j:plain:w360

展開したフォルダを、適当なパスに配置してください。Unityに戻ってExternal ToolsのNDKの「Browsボタン」をクリックし、さきほど展開したNDKフォルダを配置したパスを指定してください。

f:id:nn_hokuson:20170803193125p:plain:w360

IL2CPPを使ってビルドするように設定する

これでIL2CPPを使う準備ができました。最後に、IL2CPPを使ってプロジェクトをビルドするよう設定しましょう。

Edit→Project Settings→Playerを選択し、インスペクタに表示されるOther Settingsの中から「Scripting Background」の項目を「IL2CPP」に変更してください。

f:id:nn_hokuson:20170803193142p:plain:w360

これで、通常通りビルドすればC++に変換されたバイナリが生成されるようになります。

なお、IL2CPPはプロジェクトパスに日本語名が入っているとビルドにミスるようなので気をつけてください!(20世紀かよ!と言いたい)