Version: Unity 6.0 (6000.0)
语言 : 中文
深度链接
图形 API 支持

Xcode 帧调试器 Unity 集成

Xcode帧调试器工具可以让您捕获应用程序的帧,查看 GPU 在该帧期间执行的命令,检查 GPU 内存中的数据,并确定着色器中的瓶颈。通过这种方式,您可以详细分析 GPU 的性能。

Unity 与 Xcode 帧调试器的集成方式如下:

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

重要提示:

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

从应用程序捕获帧

要使用 Xcode 帧调试器从应用程序捕获帧,请执行以下操作之一:

  • 从 Xcode 启动应用程序,并使用 Xcode__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
    See in Glossary
    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:启用创建 Xcode 项目 (Create Xcode Project) 选项
  3. 点击构建 (Build)。

要使用其他 Xcode 项目启动 macOS 应用程序:

  1. 在 Xcode 中,创建一个新的空 macOS 项目,或者打开一个现有的 macOS 项目。
  2. 转到产品 (Product) > 方案 (Scheme) > 编辑方案 (Edit scheme),并打开信息 (Info) 选项卡。
  3. Executable 设置为已构建的 Unity 应用程序。

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

您可以使用 Xcode 图形界面进行此操作。为此,请按照 Xcode 文档中的启用帧捕获指南将项目方案的 GPU 帧捕获设置为 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 文档中的启用帧捕获指南,将项目方案的 GPU 帧捕获 (GPU Frame Capture) 设置为 Metal
  5. 可选 - 如果安装了 Unity Hub:转到 Xcode Scheme 设置窗口中的 Arguments 选项卡,然后使用 -projectPath 将路径作为参数传递给您的 Unity 项目。这样可以防止在 Xcode 启动编辑器时打开 Unity Hub,而是直接使用项目调试编辑器。显示项目路径的 FrameDebug 窗口
  6. 行 Xcode 项目以启动 Unity 编辑器。
  7. 使用以下方法之一执行帧捕获:
    • Unity 编辑器:在 Unity 编辑器中,使用 Scene 视图或 Game 视图右侧的 Xcode Capture 按钮执行帧捕获。
    • Xcode:按下帧捕获 (Frame Capture) 按钮(摄像机图标),以捕获下一帧数据。
    • 脚本:使用 FrameCapture API。更多信息请参考 FrameCapture API 文档。关于如何在 Xcode 中分析帧捕获数据,请参考 Apple 的 Xcode 帧调试器文档

从命令行启动 Unity 编辑器并捕获帧

本部分介绍如何从命令行启动 Unity 编辑器,使用 FrameCapture API 执行帧捕获,并将帧捕获保存到磁盘。macOS 上不支持此工作流程。

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

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

其他资源

深度链接
图形 API 支持