使用 Unity 工具和 API 优化性能

Unity 提供了各种与性能相关的工具和 API。您可以使用这些工具来衡量和监控性能指标、指定显示屏刷新率,以及逐帧分析场景的渲染方式。

衡量和监控效果指标

Unity OpenXR:Android XR 软件包可为您提供全面的性能数据,您可以使用这些数据来监控和优化应用。

您可以通过 Performance Metrics API 访问这些指标。

优势

  • 实时监控内存使用情况、CPU 和 GPU 性能。
  • 来自合成器和运行时层的系统统计信息。
  • 衡量优化更改的影响。

为获得最佳效果,请在开发应用和调整性能时主动监控以下指标:

AndroidXRPerformanceMetrics androidXRPerformanceMetrics = OpenXRSettings.Instance.GetFeature<AndroidXRPerformanceMetrics>();

string values = "";

if (m_Display != null && androidXRPerformanceMetrics != null && androidXRPerformanceMetrics.supportedMetricPaths != null)
  foreach (var metric in androidXRPerformanceMetrics.supportedMetricPaths)
  {
    float stat;
    XRStats.TryGetStat(m_Display, metric, out stat);

    values += string.Format("{0}: {1:F2}\n", metric, stat);
  }

指定显示屏刷新频率

借助显示刷新率,您的应用可以向运行时请求更高或更低的帧速率,系统会尽力满足这些请求。

优势

  • 根据场景复杂程度调整刷新频率。
  • 优化浅色场景中的能耗。
  • 根据应用需求动态调整。

启用此功能

使用 Unity API 访问 XR_FB_display_refresh_rate 扩展程序。

您可以请求 72fps、90fps 或 120fps 等帧速率,然后系统会在硬件能够处理且散热条件允许的情况下切换到您请求的速率。

启用 Unity 的帧调试器

帧调试器是 Unity 的内置工具,用于逐帧分析场景的渲染方式。此工具可显示绘制调用的顺序,并允许您逐步执行这些调用,以便了解渲染行为。

优势

  • 找出渲染瓶颈和意外的绘制调用。
  • 验证 SRP Batcher 是否正常运行(查找“RenderLoopNewBatcher”条目)。
  • 检查 GPU Resident Drawer 批处理(查找“Hybrid Batch Group”条目)。
  • 了解渲染操作的顺序。

启用此功能

  1. 在 Unity 主菜单中,依次点击 Window > Analysis > Frame Debugger
  2. 点击启用以开始捕获帧数据。
  3. 逐步执行绘制调用,查看正在渲染的内容以及渲染时间。