可以使用 Xcode帧调试器工具 捕获应用程序的帧,以查看 GPU 在该帧期间执行的命令,检查 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 文档中的 启用帧捕获指南 将项目方案的 GPU “帧捕获”设置设为 Metal。
您还可以使用 XcScheme API 配置 Xcode 项目方案,这对于自动化构建很有用。有关更多信息,请参阅 XcScheme API 文档。
3. 从 Xcode 启动项目并执行帧捕获。
在 Xcode 中,按“帧捕获”按钮(相机图标)以捕获下一帧数据。
您还可以使用 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
。当您的代码请求时,Xcode 会执行帧捕获并将结果保存到磁盘。有关如何在 Xcode 中分析此数据的详细信息,请参阅 Xcode 帧调试器文档。