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

RenderPipelineManager.beginContextRendering

建议更改

成功!

感谢您帮助我们提升 Unity 文档质量。虽然我们不能接受所有提交,但我们会阅读用户建议的每项更改,并在适用时进行更新。

关闭

提交失败

由于某种原因,您建议的更改无法提交。请在几分钟内<a>重试</a>。感谢您抽出宝贵时间,帮助我们提升 Unity 文档质量。

关闭

取消

描述

您可以在 RenderPipeline.Render 的开始处调用自定义代码的委托。

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

在 Universal Render Pipeline (URP) 和 High Definition Render Pipeline (HDRP) 中,Unity 自动调用 RenderPipeline.BeginContextRendering。如果您正在编写自定义可编程渲染管道,则必须自己调用此方法。此功能与内置渲染管道不兼容。

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

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

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

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

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

void OnDestroy() { RenderPipelineManager.beginContextRendering -= OnBeginContextRendering; } }