Xcode の フレームデバッガーツール では、アプリケーションのフレームをキャプチャして、フレームで GPU が実行したコマンドを確認したり、GPU メモリのデータを調べたり、シェーダーのボトルネックを特定したりすることができます。これにより、GPU パフォーマンスを詳細に分析できます。
Unity は、Xcode のフレームデバッガーと以下のように統合されています。
重要:
Xcode のフレームデバッガーを使用してフレームをキャプチャするには、以下のいずれかを行います。
ここでは、アプリケーションを起動し、Xcode UI か FrameCapture API を使用してフレームキャプチャーを実行する方法について説明します。このワークフローは、Metal を使用するすべてのプラットフォームでサポートされます。
1. Xcode のプロジェクトを作成します。
Unity エディターから Xcode プロジェクトを作成するか、その他の Xcode プロジェクトを使用して macOS アプリケーションを起動できます。
Unity エディターで Xcode プロジェクトをビルドするには以下を行います。
別の Xcode プロジェクトを使用して macOS アプリケーションを起動するには、以下を行います。
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 からアプリケーションを起動する必要があります。
-enable-metal-capture. というフラグを付けて、コマンドラインからアプリケーションを起動します。Xcode は、コードのリクエストに応じてフレームキャプチャを実行し、その結果をディスクに保存します。Xcode でフレームキャプチャデータを分析する方法については、Apple の Xcode のフレームデバッガーに関するドキュメント を参照してください。
macOS では、Xcode のフレームデバッガーを使って、Unity エディターのフレームを解析することができます。Xcodeを使用してUnity エディターを起動した場合、Unity エディターの UI からフレームキャプチャをリクエストすることができます。
以下のステップに従って Xcode から Unity エディターを起動し、Unity エディター UI、Xcode UI、FrameCapture API を使用してフレームキャプチャを実行します。フレームキャプチャを即座に解析したり、結果をディスクに保存することができます。このワークフローは macOS に対応しています。
前提条件: Unity エディターが開いている場合は閉じます。
-projectPath を使用して Unity プロジェクトへのパスを引数として渡します。これは、Xcode がエディターを起動する際に Unity Hub が開かないようにし、代わりにプロジェクトでエディターを直接デバッグするためです。
FrameCapture API を使用します。詳しくは、FrameCapture API のドキュメントを参照してください。Xcode でのフレームキャプチャデータの分析については、Apple の Xcode のフレームデバッガーに関するドキュメント を参照してください。ここでは、コマンドラインから Unity エディターを起動し、FrameCapture API を使ってフレームキャプチャを実行し、その結果をディスクに保存する方法を説明します。このワークフローは macOS に対応しています。
-enable-metal-capture というフラグを付けて、コマンドラインから Unity エディターを起動 します。Xcode は、コードのリクエストに応じてフレームキャプチャを実行し、その結果をディスクに保存します。Xcode でフレームキャプチャデータを分析する方法については、Xcode のフレームデバッガーに関するドキュメント を参照してください。