Version: 6000.3
语言: 中文
深度链接
图形 API 支持

Xcode 帧调试器 Unity 集成

Xcode帧调试器工具允许您捕获应用程序的帧,以查看 GPU 在该帧期间执行的命令,检查 GPU 内存中的数据,并识别着色器在 GPU 上运行的程序。更多信息
请参阅术语表
.这使您可以详细分析 GPU 性能。

Unity 通过以下方式与 Xcode 帧调试器集成:

  • 在 macOS、iOS 和 Apple tvOS 上,你可以使用 Xcode 帧调试器来分析应用程序在目标设备上运行时的帧。
  • 在 macOS 上,您可以使用 Xcode 帧调试器从 Unity 编辑器分析帧。

重要:

  • 仅当应用程序在 Xcode 支持的平台和图形 API 上运行时,帧调试才有效。
  • Xcode 仅支持带有 Metal 图形的 macOS。
  • 如果 Unity 使用其他 API,则 Xcode 集成将被禁用,直到您选择受支持的图形 API。

从应用程序捕获帧

若要使用 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. 打开“构建配置文件”窗口(“文件”>“构建配置文件”)。
  2. 仅限 macOS:启用“创建 Xcode 项目”
  3. 单击构建。

要使用另一个 Xcode 项目启动 macOS 应用程序:

  1. 在 Xcode 中,创建一个新的空 macOS 项目,或打开现有的 macOS 项目。
  2. 转到“产品>方案”>“编辑方案”,然后打开“信息”选项卡。
  3. “可执行文件”设置为生成的 Unity 应用程序。

2. 编辑 Xcode 项目方案,以便您可以执行帧捕获。

要么,使用 Xcode GUI。为此,请按照Xcode文档中的启用帧捕获指南将项目方案的GPU帧捕获设置设置为 金属(Metal)。

您还可以使用 XcScheme API 配置 Xcode 项目方案,这对于自动构建非常有用。有关更多信息,请参阅 XcScheme API 文档

3. 从 Xcode 启动您的项目,并执行帧捕获。

在 Xcode 中,按“帧捕获”按钮(相机图标)以捕获下一帧数据。

您还可以使用 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. 转到产品>方案>编辑方案,然后打开信息选项卡
  3. “可执行文件”设置为“Unity 编辑器”。
  4. 按照Xcode文档中的启用帧捕获指南,将项目方案的GPU帧捕获设置设置为 金属(Metal)。
  5. 可选 - 如果安装了 Unity Hub:转到 Xcode Scheme 设置窗口中的 Arguments 选项卡,并使用-projectPath.这是为了防止 Unity Hub 在 Xcode 启动编辑器时打开,而是直接使用您的项目调试编辑器。显示项目路径的 FrameDebug 窗口
  6. 运行 Xcode 项目以启动 Unity 编辑器。
  7. 使用以下方法之一执行帧捕获:
    • Unity 编辑器:使用右侧的 Xcode 捕获按钮场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
      请参阅术语表
      视图或游戏视图以执行帧捕获。
    • Xcode的:选择“帧捕获”按钮(相机图标)以捕获下一帧数据。
    • 脚本:使用FrameCapture应用程序接口。有关更多信息,请参阅 FrameCapture API 文档。 有关在 Xcode 中分析帧捕获数据的信息,请参阅 Apple 的 Xcode 帧调试器文档

使用命令行从 Unity 编辑器捕获帧

此工作流介绍如何从命令行启动 Unity 编辑器、使用 FrameCapture API 执行帧捕获以及将帧捕获保存到磁盘。macOS 支持此工作流。

  1. 将对 FrameCapture.BeginCaptureToFileEndCapture 的调用添加到代码中,以便您可以根据需要执行帧捕获。
  2. 从命令行启动 Unity 编辑器,并使用以下标志:-enable-metal-capture.Xcode 会在代码请求时执行帧捕获,并将结果保存到磁盘。

有关如何在 Xcode 中分析此数据的信息,请参阅 Xcode 帧调试器文档

其他资源:

深度链接
图形 API 支持