Unity3d:Xcode 帧调试器 Unity 集成
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
Xcode 帧调试器 Unity 集成
Xcode 帧调试器工具可让您捕获应用程序的帧,以查看 GPU 在该帧期间执行的命令、检查 GPU 内存中的数据以及识别着色器中的瓶颈。这使您可以详细分析 GPU 性能。
Unity 通过以下方式与 Xcode 帧调试器集成:
- 在 macOS、iOS 和 tvOS 上,您可以使用 Xcode 帧调试器来分析应用程序中在目标设备上运行时的帧。
- 在 macOS 上,您可以使用 Xcode 帧调试器从 Unity 编辑器分析帧。
仅当应用程序在 Xcode 支持的平台和图形 API 上运行时,帧调试才有效。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 项目,请执行以下操作:
- 打开“生成设置”窗口(“文件>生成设置”)。
- 仅限 macOS:启用“创建 Xcode 项目”。
- 单击“构建”。
要使用其他 Xcode 项目启动 macOS 应用程序:
- 在 Xcode 中,创建一个新的空 macOS 项目,或打开现有的 macOS 项目。
- 转到产品>方案>编辑方案,然后打开信息选项卡。
- 将 Executable 设置为构建的 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 启动应用程序。
- 将 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 项目。
- 转至产品>方案>编辑方案,然后打开信息选项卡。
- 将可执行文件设置为 Unity 编辑器。
- 按照 Xcode 文档中的启用帧捕获指南将项目方案的 GPU 帧捕获设置设置为 Metal。
- 运行 Xcode 项目以启动 Unity 编辑器。
- 通过 Unity 编辑器 UI、Xcode UI 或脚本执行帧捕获:
- 统一编辑器:使用场景视图或游戏视图右侧的 Xcode 捕获按钮执行帧捕获。
- Xcode:选择“帧捕获”按钮(相机图标)以捕获下一帧数据。
- 脚本:使用 API。有关详细信息,请参阅帧捕获 API 文档。
FrameCapture
有关在 Xcode 中分析帧捕获数据的信息,请参阅 Apple 的 Xcode 帧调试器文档。
使用命令行从 Unity 编辑器捕获帧
此工作流介绍如何从命令行启动 Unity 编辑器、使用 FrameCapture API 执行帧捕获以及将帧捕获保存到磁盘。macOS 支持此工作流程。
- 将 FrameCapture.BeginCaptureToFile 和 EndCapture 的调用添加到代码中,以便您可以根据需要执行帧捕获。
- 从命令行启动 Unity 编辑器,并使用以下标志:.Xcode 会在代码请求帧捕获时执行帧捕获,并将结果保存到磁盘。
-enable-metal-capture
3D建模学习工作室整理翻译,转载请标明出处!