版本: Unity 6 (6000.0)
语言English
  • C#

RenderPipelineManager.endContextRendering

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交内容,但我们确实会阅读用户提出的每一项修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

您可以使用此委托在 RenderPipeline.Render 结束时调用自定义代码。

当 Unity 在 RenderPipeline.Render 结束时调用 RenderPipeline.BeginContextRendering 时,它会执行此委托调用列表中的方法。

在通用渲染管线 (URP) 和高清渲染管线 (HDRP) 中,Unity 会自动调用 RenderPipeline.BeginContextRendering。如果您正在编写自定义的可脚本化渲染管线,则必须自行调用此方法。此功能与内置渲染管线不兼容。

此委托的工作方式与 RenderPipelineManager.endFrameRendering 相同,只是此版本不会导致堆分配。

以下代码示例演示如何将方法添加到此委托的调用列表中,以及之后如何将其移除。

using UnityEngine;
using UnityEngine.Rendering;
using System.Collections.Generic;

public class ExampleClass : MonoBehaviour { void Start() { RenderPipelineManager.endContextRendering += OnEndContextRendering; }

void OnEndContextRendering(ScriptableRenderContext context, List<Camera> cameras) { // Put the code that you want to execute at the end of RenderPipeline.Render here }

void OnDestroy() { RenderPipelineManager.endContextRendering -= OnEndContextRendering; } }