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

iOS 特有の最適化

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

スクリプトコール最適化

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 を変更します。

加速度センサーの周波数のチューニング

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

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