Version: Unity 6.0 (6000.0)
言語 : 日本語
ディープリンク
グラフィックス API のサポート

Xcode フレームデバッガーの Unity インテグレーション

Xcodeフレームデバッガーツール では、アプリケーションのフレームをキャプチャして、フレームで GPU が実行したコマンドを確認したり、GPU メモリのデータを調べたり、シェーダーのボトルネックを特定したりすることができます。これにより、GPU パフォーマンスを詳細に分析できます。

Unity は、Xcode のフレームデバッガーと以下のように統合されています。

  • macOS、iOS、tvOS では、Xcode のフレームデバッガーを使って、ターゲットデバイス上で実行中のアプリケーションのフレームを解析することができます。
  • macOS では、Xcode のフレームデバッガーを使って、Unity エディターのフレームを解析することができます。

重要:

  • フレームデバッグは、Xcode がサポートするプラットフォームとグラフィックス API で Unity が 実行されている場合にのみ機能します。
  • Xcode は Metal グラフィックスの macOS のみをサポートします。
  • Unity が別の API を使用する場合、サポートされているグラフィックス API を選択するまで Xcode のインテグレーションは無効になります。

アプリケーションからフレームをキャプチャする

Xcode のフレームデバッガーを使用してフレームをキャプチャするには、以下のいずれかを行います。

  • Xcode からアプリケーションを起動し、Xcode UI または FrameCapture API を使用してフレームキャプチャをリクエストします。フレームキャプチャは、Xcode ですぐに解析することも、ディスクに保存することも可能です。このワークフローは、Metal を使用するすべてのプラットフォームでサポートされます。
  • Xcode プロジェクトを使用せずに、コマンドラインから直接アプリケーションを起動し、FrameCapture API を使用してフレームキャプチャをディスクに保存することができます。ノート: iOS では、このワークフローはサポートされません。

Xcode でアプリケーションのフレームをキャプチャする

ここでは、アプリケーションを起動し、Xcode UI か FrameCapture API を使用してフレームキャプチャーを実行する方法について説明します。このワークフローは、Metal を使用するすべてのプラットフォームでサポートされます。

1. Xcode のプロジェクトを作成します。

Unity エディターから Xcode プロジェクトを作成するか、その他の Xcode プロジェクトを使用して macOS アプリケーションを起動できます。

Unity エディターで Xcode プロジェクトをビルドするには以下を行います。

  1. Build Settings ウィンドウを開きます (File > Build Settings)。
  2. macOS のみ: Create Xcode Project を有効にします。
  3. Build をクリックします。

別の Xcode プロジェクトを使用して macOS アプリケーションを起動するには、以下を行います。

  1. Xcode で、新しい空の macOS プロジェクトを作成するか、既存の macOS プロジェクトを開きます。
  2. Product > Scheme > Edit scheme の順に移動し、Info タブを開きます。
  3. Executable をビルドした Unity アプリケーションに設定します。

2. Xcode プロジェクトのスキームを編集して、フレームキャプチャを実行できるようにします。

いずれも、Xcode GUI を使用します。これを行う際は、Xcode ドキュメントの Enabling Frame Capture ガイド に従って、プロジェクトスキームの GPU Frame Capture の設定を Metal に設定してください。

XcScheme API を使用して Xcode プロジェクトスキームを設定することもできます。これは、自動化されたビルドに役立ちます。詳細については、XcScheme API のドキュメント を参照してください。

3. Xcode からプロジェクトを起動し、フレームキャプチャを実行します。

Xcode で、Frame Capture ボタン (カメラアイコン) を押すと、次のフレームのデータがキャプチャされます。

また、FrameCapture API を使って、スクリプトからフレームキャプチャを実行することもできます。Xcode でのフレームキャプチャデータの分析については、Xcode のフレームデバッガーに関するドキュメント を参照してください。

コマンドラインでアプリケーションのフレームをキャプチャする

ここでは、コマンドラインからアプリケーションを起動し、FrameCapture API を使ってフレームキャプチャを実行し、その結果をディスクに保存する方法を説明します。重要:このワークフローは iOS ではサポートされません。iOS でフレームキャプチャを行うには、必ず Xcode からアプリケーションを起動する必要があります。

  1. FrameCapture.BeginCaptureToFileEndCapture の呼び出しをコードに追加します。これにより、必要に応じてフレームキャプチャを実行できます。
  2. -enable-metal-capture. というフラグを付けて、コマンドラインからアプリケーションを起動します。Xcode は、コードのリクエストに応じてフレームキャプチャを実行し、その結果をディスクに保存します。

Xcode でフレームキャプチャデータを分析する方法については、Apple の Xcode のフレームデバッガーに関するドキュメント を参照してください。

Unity エディターからフレームをキャプチャする

macOS では、Xcode のフレームデバッガーを使って、Unity エディターのフレームを解析することができます。Xcodeを使用してUnity エディターを起動した場合、Unity エディターの UI からフレームキャプチャをリクエストすることができます。

Xcode で Unity エディターからフレームをキャプチャする

以下のステップに従って Xcode から Unity エディターを起動し、Unity エディター UI、Xcode UI、FrameCapture API を使用してフレームキャプチャを実行します。フレームキャプチャを即座に解析したり、結果をディスクに保存することができます。このワークフローは macOS に対応しています。

前提条件: Unity エディターが開いている場合は閉じます。

  1. Xcode で、新しい空の macOS プロジェクトを作成するか、既存の macOS プロジェクトを開きます。
  2. Product > Scheme > Edit scheme の順に移動し、Info タブを開きます。
  3. Executable を Unity エディターに設定します。
  4. Xcode ドキュメントの Enabling Frame Capture ガイド に従って、プロジェクトスキームの GPU Frame Capture の設定を Metal に設定してください。
  5. 任意 - Unity Hub がインストールされている場合: Xcode Scheme 設定ウィンドウの Arguments タブに移動し、-projectPath を使用して Unity プロジェクトへのパスを引数として渡します。これは、Xcode がエディターを起動する際に Unity Hub が開かないようにし、代わりにプロジェクトでエディターを直接デバッグするためです。プロジェクトパスが表示された FrameDebug ウィンドウ
  6. Xcode プロジェクトを実行して、Unity エディターを立ち上げます。
  7. 以下のいずれかの方法でフレームキャプチャを実行します。
    • Unity エディター: シーンビューやゲームビューの右にある Xcode Capture ボタンを使って、フレームキャプチャーを行います。
    • Xcode: Frame Capture ボタン (カメラアイコン) を選択すると、次のフレームのデータがキャプチャされます。
    • Script: FrameCapture API を使用します。詳しくは、FrameCapture API のドキュメントを参照してください。Xcode でのフレームキャプチャデータの分析については、Apple の Xcode のフレームデバッガーに関するドキュメント を参照してください。

Unity エディターからコマンドラインでフレームをキャプチャする

ここでは、コマンドラインから Unity エディターを起動し、FrameCapture API を使ってフレームキャプチャを実行し、その結果をディスクに保存する方法を説明します。このワークフローは macOS に対応しています。

  1. FrameCapture.BeginCaptureToFileEndCapture の呼び出しをコードに追加します。これにより、必要に応じてフレームキャプチャを実行できます。
  2. -enable-metal-capture というフラグを付けて、コマンドラインから Unity エディターを起動 します。Xcode は、コードのリクエストに応じてフレームキャプチャを実行し、その結果をディスクに保存します。

Xcode でフレームキャプチャデータを分析する方法については、Xcode のフレームデバッガーに関するドキュメント を参照してください。

その他の参考資料

ディープリンク
グラフィックス API のサポート