このページでは、iOS デプロイメント特有の最適化の詳細について説明します。
Most of the functions in the UnityEngine namespace are implemented in C/C++. Calling a C/C++ function from a Mono script involves a performance overhead, so you can save about 1 to 4 milliseconds per frame using iOS Script Call optimization.
iOS Script Call Optimization は Player Settings ウィンドウ( Edit > Project Settings > Player) を開き、下のような iOS アイコンを選択します。
Locate the Script Call Optimization setting in the _Other Settings section.
この設定のオプションには以下の通りです。
Note: There is no performance benefit when using the IL2CPP scripting backend. However, we recommend using Fast but no exceptions on release builds to avoid undefined behaviour.
Unity iOS ではアプリケーションがレンダリングループを実行する頻度を変更することが可能です。デフォルトでは 30 フレーム毎秒です。バッテリー消費を節約するためにこの数字を下げることはできますが、この節約はフレーム更新が犠牲になります。反対にフレームレートを増やすと、タッチ入力や加速度センサー処理といった、他の処理よりもレンダリングの優先度をあげることができます。フレームレートがどのようにゲームプレイへ影響するかを判断するには、フレームレートを変えて実験してみる必要があります。
もしアプリケーションが重たい計算処理やレンダリングを伴っており、例えば 15 フレーム毎秒しか維持できない場合、希望のフレームレートを 15 以上に設定したからといってパフォーマンスは上がりません。より高いフレームレートを得るためには、アプリケーションを十分に最適化する必要があります。
フレームレートを設定するには、Application.targetFrameRate を変更します。
もし加速度センサーがあまりにも頻繁に処理される場合、ゲーム全体のパフォーマンスが結果的に影響を受ける場合があります。デフォルトでは、Unity iOS アプリケーションは加速度センサーを毎秒 60 回サンプリングを行います。加速度センサーのサンプリング周波数を下げるとこでパフォーマンス改善がみられるかもしれません。また、加速度センサーを使用しないゲームでは 0 に設定することもできます。加速度センサーの周波数を変更するには iOS Player Settings の Other Settings の Accelerometer Frequency を変更します。