Version: 2023.1
Rendering Profiler 模块
Video Profiler 模块

UI 和 UI Details Profiler

UI 和 UI Details Profiler 模块提供有关 Unity 在应用程序内布局和渲染用户界面方面花费的时间和资源的信息。使用此模块可以了解 Unity 如何为应用程序处理 UI 批处理,包括 Unity 为何以及如何对对象进行批处理。使用此模块还可以查明 UI 的哪一部分导致性能下降,或者在拖动时间轴的同时预览 UI。

有关如何使用 Profiler 窗口的更多信息,请参阅 Profiler 窗口入门相关文档。

UI 和 UI Details Profiler 模块
UI 和 UI Details Profiler 模块

图表类别

UI 和 UI Details Profiler 模块的图表被分为五个类别。要更改图表中类别的顺序,可以在图表的图例中拖放这些类别。还可以单击某个类别的有色图例以切换是否显示。

图表 描述
UI Profiler 模块
Layout Unity 在执行 UI 的布局通道方面花费的时间。这包括 HorizontalLayoutGroupVerticalLayoutGroupGridLayoutGroup 进行的计算。
Render UI 在完成渲染部分中花费的时间。这是直接渲染到图形设备的成本,或者是渲染到主渲染队列的成本。
UI Details Profile 模块
Batches 显示一起批处理的绘制调用的总数。
Vertices 用于渲染 UI 某个部分的顶点总数。
Markers 显示事件标记。用户与 UI 交互(例如,单击按钮或更改滑动条值)时,Unity 将记录标记,然后将它们绘制为图表上的垂线和标签。

模块详细信息面板

选择 UI 或 UI Details Profiler 模块时,Profiler 窗口底部的模块详细信息面板会显示应用程序中 UI 的更多相关详细信息。据此可以检查应用程序中 UI 对象的相关性能分析信息。该面板被分为以下几列:

描述
Object 应用程序在性能分析期间使用的 UI 画布的列表。双击一行可以突出显示场景中的匹配对象。
Self Batch Count Unity 为画布生成的批次数量。
Cumulative Batch Count Unity 为画布及其所有嵌套画布生成的批次数量。
Self Vertex Count 此画布渲染的顶点数量。
Cumulative Vertex Count 此画布和嵌套的画布渲染的顶点数量。
Batch Breaking Reason Unity 拆分此批次的原因。有时 Unity 可能无法对对象同时进行批处理。常见原因包括:

不与画布共面 (Not Coplanar With Canvas):批处理需要对象的矩形变换与画布共面(未旋转)。
画布注入索引 (CanvasInjectionIndex):CanvasGroup 组件存在并强制新建批次,例如在其余部分上显示一个组合框的下拉列表时。
不同的材质实例、矩形裁剪、纹理、A8 纹理用法 (Different Material Instance, Rect clipping, Texture, or A8TextureUsage):Unity 只能将具有相同材质、遮罩、纹理和纹理 Alpha 通道用法的对象一起进行处理。
GameObject Count 此批次中包含的游戏对象数量。
GameObjects 批次中的游戏对象的列表。

从列表中选择 UI 对象时,对象的预览将显示在面板右侧。预览上方的工具栏中有以下选项:

  • Detach:选择此按钮可在单独的窗口中打开 UI 画布。要重新连接该窗口,请将其关闭。
  • Preview background:使用下拉选单来更改预览背景的颜色。可以选择 CheckerboardBlackWhite。如果 UI 具有特别浅色或深色的方案,这将很有用。
  • Preview type:使用下拉选单来选择 StandardOverdrawComposite Overdraw
Rendering Profiler 模块
Video Profiler 模块