Unity のツールと API を使用してパフォーマンスを最適化する

Unity には、パフォーマンスに関連するさまざまなツールと API が用意されています。これらのツールを使用して、パフォーマンス指標を測定してモニタリングし、ディスプレイのリフレッシュ レートを指定して、シーンがフレームごとにレンダリングされる方法を分析します。

パフォーマンス指標を測定してモニタリングする

Unity OpenXR: Android XR パッケージでは、アプリのモニタリングと最適化に使用できる包括的なパフォーマンス データが提供されます。

これらの指標には、パフォーマンス指標 API を使用してアクセスできます。

利点

  • メモリ使用量、CPU、GPU のパフォーマンスをリアルタイムでモニタリングします。
  • コンポジタ レイヤとランタイム レイヤのシステム統計情報。
  • 最適化の変更による影響を測定します。

最適な結果を得るには、アプリの作業中やパフォーマンスの調整中に、これらの指標を積極的にモニタリングします。

AndroidXRPerformanceMetrics androidXRPerformanceMetrics = OpenXRSettings.Instance.GetFeature<AndroidXRPerformanceMetrics>();

string values = "";

if (m_Display != null && androidXRPerformanceMetrics != null && androidXRPerformanceMetrics.supportedMetricPaths != null)
  foreach (var metric in androidXRPerformanceMetrics.supportedMetricPaths)
  {
    float stat;
    XRStats.TryGetStat(m_Display, metric, out stat);

    values += string.Format("{0}: {1:F2}\n", metric, stat);
  }

ディスプレイのリフレッシュ レートを指定する

ディスプレイ リフレッシュ レートを使用すると、アプリはランタイムから高いフレームレートまたは低いフレームレートをリクエストできます。システムは、このリクエストを尊重しようとします。

利点

  • シーンの複雑さに基づいて更新頻度を調整します。
  • 明るいシーンでの消費電力を最適化します。
  • アプリの需要に動的に適応します。

この機能を有効にする

Unity API を使用して XR_FB_display_refresh_rate 拡張機能にアクセスします。

72 fps、90 fps、120 fps などのフレームレートをリクエストできます。ハードウェアが対応可能で、温度条件が許容範囲内であれば、システムはリクエストされたレートに切り替わります。

Unity のフレーム デバッガを有効にする

フレーム デバッガは、シーンがフレームごとにどのようにレンダリングされるかを分析するための Unity の組み込みツールです。このツールは、ドローコールのシーケンスを表示し、ステップ実行してレンダリングの動作を理解できるようにします。

利点

  • レンダリングのボトルネックと予期しないドローコールを特定します。
  • SRP Batcher が正しく動作していることを確認します(「RenderLoopNewBatcher」エントリを探します)。
  • GPU 常駐ドロワーのバッチ処理を確認します(「Hybrid Batch Group」エントリを探します)。
  • レンダリング オペレーションの順序を理解する。

この機能を有効にする

  1. Unity のメインメニューで、[Window] > [Analysis] > [Frame Debugger] をクリックします。
  2. [有効にする] をクリックして、フレームデータのキャプチャを開始します。
  3. ドローコールをステップ実行して、何がいつレンダリングされているかを確認します。