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 项目,请执行以下操作:

  1. 打开“生成设置”窗口(“文件>生成设置”)。
  2. 仅限 macOS:启用“创建 Xcode 项目”。
  3. 单击“构建”。

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

  1. 在 Xcode 中,创建一个新的空 macOS 项目,或打开现有的 macOS 项目。
  2. 转到产品>方案>编辑方案,然后打开信息选项卡。
  3. 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 启动应用程序。

  1. 将 FrameCapture.BeginCaptureToFile 和 EndCapture 的调用添加到代码中,以便您可以根据需要执行帧捕获。
  2. 使用以下标志从命令行启动应用程序: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 支持此工作流程。

  1. 如果 Unity 编辑器已打开,请将其关闭。
  2. 在 Xcode 中,创建一个新的空 macOS 项目,或打开现有的 macOS 项目。
  3. 转至产品>方案>编辑方案,然后打开信息选项卡。
  4. 将可执行文件设置为 Unity 编辑器。
  5. 按照 Xcode 文档中的启用帧捕获指南将项目方案的 GPU 帧捕获设置设置为 Metal。
  6. 运行 Xcode 项目以启动 Unity 编辑器。
  7. 通过 Unity 编辑器 UI、Xcode UI 或脚本执行帧捕获:
  • 统一编辑器:使用场景视图或游戏视图右侧的 Xcode 捕获按钮执行帧捕获。
  • Xcode:选择“帧捕获”按钮(相机图标)以捕获下一帧数据。
  • 脚本:使用 API。有关详细信息,请参阅帧捕获 API 文档。FrameCapture

有关在 Xcode 中分析帧捕获数据的信息,请参阅 Apple 的 Xcode 帧调试器文档。

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

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

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

3D建模学习工作室整理翻译,转载请标明出处!

上一篇:Unity3d:深度链接 (mvrlink.com)

下一篇:Unity3d:安卓要求和兼容性 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号