您可以使用 Unity 性能分析器 (Profiler) 获取有关项目在 CPU 和内存等方面性能的数据。
下表列出了在 Unity Profiler 中显示的 URP 帧标记,这些标记对性能有显著影响。
如果标记位于性能分析器层级视图中的较深位置,或者标签已经描述了 URP 的功能,则该标记不会列出。
| 标记 | 子标记 | 描述 |-|-|-|
| Inl_UniversalRenderPipeline。RenderSingleCameraInternal || URP 为单个摄像机 ScriptableRenderContext 构建渲染命令列表。URP 仅记录此标记中的渲染命令,但尚未执行它们。该标记包括摄像机名称,例如 Main Camera。|
|| Inl_ScriptableRenderer.Setup | URP 为渲染做准备,例如为摄像机和阴影贴图准备渲染纹理。|
|| CullScriptable | URP 生成要渲染的游戏对象和光源列表,并剔除(排除)摄像机视图之外的任何对象和光源。此操作所需时间取决于场景中的游戏对象和光源数量。|
| Inl_ScriptableRenderContext.Submit || URP 将 ScriptableRenderContext 中的命令列表提交给图形 API。如果 URP 每帧提交多次命令,或者您在自定义代码中调用 ScriptableRenderContext.Submit,则此标记可能会多次出现。|
|| MainLightShadow | URP 渲染主方向光的阴影贴图。|
|| AdditionalLightsShadow | URP 渲染其他光源的阴影贴图。|
|| UberPostProcess | URP 渲染启用的后期处理效果。此标记包含一些后期处理效果的单独标记。|
|| RenderLoop.DrawSRPBatcher | URP 使用可编程渲染管线批次来渲染一个或多个对象批次。|
| CopyColor || URP 将颜色缓冲区从一个渲染纹理复制到另一个渲染纹理。您可以在 URP 资源中禁用不透明纹理,以便 URP 仅在必要时复制颜色缓冲区。|
| CopyDepth || URP 将深度缓冲区从一个渲染纹理复制到另一个渲染纹理。除非需要深度纹理,否则可以在 URP 资源中禁用深度纹理(例如使用场景深度的着色器)。|
| FinalBlit || URP 将渲染纹理复制到当前摄像机渲染目标。|
您可以使用平台 GPU 性能分析器(例如 Xcode)在渲染期间获取有关 GPU 性能的数据。还可以使用性能分析器,例如 RenderDoc,但它可能会提供不太准确的性能数据。
来自 GPU 性能分析器的数据包括渲染事件的 URP 标记,例如不同的渲染通道。
您还可以使用以下工具来分析项目的性能: