Xcode フレームデバッガーの Unity インテグレーション
Explains about Unity integration with the Xcode frame debugger on supported platforms to analyze GPU performance.
読み終わるまでの所要時間 14 分最終更新 1ヶ月前
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 プロジェクトをビルドするには以下を行います。
- Build Settings ウィンドウを開きます (File > Build Settings)。
- macOS のみ: Create Xcode Project を有効にします。
- Build をクリックします。
別の Xcode プロジェクトを使用して macOS アプリケーションを起動するには、以下を行います。
- Xcode で、新しい空の macOS プロジェクトを作成するか、既存の macOS プロジェクトを開きます。
- Product > Scheme > Edit scheme の順に移動し、Info タブを開きます。
- 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 からアプリケーションを起動する必要があります。
- FrameCapture.BeginCaptureToFile と EndCapture の呼び出しをコードに追加します。これにより、必要に応じてフレームキャプチャを実行できます。
- というフラグを付けて、コマンドラインからアプリケーションを起動します。Xcode は、コードのリクエストに応じてフレームキャプチャを実行し、その結果をディスクに保存します。
-enable-metal-capture.
Xcode でフレームキャプチャデータを分析する方法については、Apple の Xcode のフレームデバッガーに関するドキュメント を参照してください。
Unity エディターからフレームをキャプチャする
macOS では、Xcode のフレームデバッガーを使って、Unity エディターのフレームを解析することができます。Xcodeを使用してUnity エディターを起動した場合、Unity エディターの UI からフレームキャプチャをリクエストすることができます。
Xcode で Unity エディターからフレームをキャプチャする
以下のステップに従って Xcode から Unity エディターを起動し、Unity エディター UI、Xcode UI、FrameCapture API を使用してフレームキャプチャを実行します。フレームキャプチャを即座に解析したり、結果をディスクに保存することができます。このワークフローは macOS に対応しています。
前提条件: Unity エディターが開いている場合は閉じます。
-
Xcode で、新しい空の macOS プロジェクトを作成するか、既存の macOS プロジェクトを開きます。
-
Product > Scheme > Edit scheme の順に移動し、Info タブを開きます。
-
Executable を Unity エディターに設定します。
-
Xcode ドキュメントの Enabling Frame Capture ガイド に従って、プロジェクトスキームの GPU Frame Capture の設定を Metal に設定してください。
-
任意 - Unity Hub がインストールされている場合: Xcode Scheme 設定ウィンドウの Arguments タブに移動し、を使用して Unity プロジェクトへのパスを引数として渡します。これは、Xcode がエディターを起動する際に Unity Hub が開かないようにし、代わりにプロジェクトでエディターを直接デバッグするためです。
-projectPath
プロジェクトパスが表示された FrameDebug ウィンドウ
-
Xcode プロジェクトを実行して、Unity エディターを立ち上げます。
-
以下のいずれかの方法でフレームキャプチャを実行します。
- Unity エディター: シーンビューやゲームビューの右にある Xcode Capture ボタンを使って、フレームキャプチャーを行います。
- Xcode: Frame Capture ボタン (カメラアイコン) を選択すると、次のフレームのデータがキャプチャされます。
- Script: API を使用します。詳しくは、FrameCapture API のドキュメントを参照してください。Xcode でのフレームキャプチャデータの分析については、Apple の Xcode のフレームデバッガーに関するドキュメント を参照してください。
FrameCapture
Unity エディターからコマンドラインでフレームをキャプチャする
ここでは、コマンドラインから Unity エディターを起動し、FrameCapture API を使ってフレームキャプチャを実行し、その結果をディスクに保存する方法を説明します。このワークフローは macOS に対応しています。
- FrameCapture.BeginCaptureToFile と EndCapture の呼び出しをコードに追加します。これにより、必要に応じてフレームキャプチャを実行できます。
- というフラグを付けて、コマンドラインから Unity エディターを起動 します。Xcode は、コードのリクエストに応じてフレームキャプチャを実行し、その結果をディスクに保存します。
-enable-metal-capture
Xcode でフレームキャプチャデータを分析する方法については、Xcode のフレームデバッガーに関するドキュメント を参照してください。