Version: 5.5
iOS のパフォーマンスの最適化
ビルトインプロファイラーでのパフォーマンス測定

iOS 特有の最適化

このページでは iOS デプロイに特有の最適化について説明します。

Script Call Optimization

UnityEngine 名前空間のほんどの関数は C/C++で実装されています。C/C++関数を Mono スクリプトからコールすることはパフォーマンスオーバーヘッドを伴います。iOS スクリプトコール最適化 (メニュー: Edit->Project Settings->Player ) を使用して毎フレーム 1 から 4 ミリ秒の節約ができます。この設定のオプションは以下を参照してください。

  • Slow and Safe - Mono のデフォルトであり、例外処理に対応した内部コールハンドリング。
  • Fast and Exceptions Unsupported - Mono 内部コールハンドリングのより速い実装です。例外処理はサポートされてないため使用は注意が必要です。例外を明示的にハンドリングしないアプリ (また、対応がそもそも必要ない) はこのオプションが理想的です。

希望のフレームレートを設定

Unity iOS ではアプリケーションがレンダリングループを実行する頻度を変更することが可能です。デフォルトでは 30 フレーム毎秒です。バッテリー消費を節約するためにこの数字を下げることはできますが、この節約はフレーム更新が犠牲になります。反対にフレームレートを増やして、タッチ入力や加速度センサー処理といった、他の処理よりもレンダリングの優先度をあげることができます。フレームレートがどのようにゲームプレイへ影響するかを判断するには、フレームレートを変えて実験してみる必要があります。

もしアプリケーションが重たい計算処理やレンダリングを伴い、例えば 15 フレーム毎秒しか維持できない場合、希望のフレームレートを 15 以上に設定したからといってパフォーマンスは上がりません。より高いフレームレートを得るためには、アプリケーションを十分に最適化する必要があります。

フレームレートを設定するには Application.targetFrameRate を変更します。

Accelerometer Frequency (加速度センサーの周波数) の調整

もし加速度センサーがあまりにも頻繁に処理される場合、ゲーム全体のパフォーマンスが結果的に影響を受ける場合があります。デフォルトでは、Unity iOS アプリケーションは加速度センサーを毎秒 60 回サンプリングを行います。加速度センサーのサンプリング周波数を下げるとこでパフォーマンス改善がみられるかもしれません。また、加速度センサーを使用しないゲームでは 0 に設定することもできます。加速度センサーの周波数を変更するには iOS Player SettingsOther Settings の Accelerometer Frequency を変更します。

iOS のパフォーマンスの最適化
ビルトインプロファイラーでのパフォーマンス測定