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

RenderPipelineManager.beginCameraRendering

建议更改

成功!

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

关闭

提交失败

由于某种原因,您建议的更改无法提交。请在片刻之后<a>重试</a>。感谢您花时间帮助我们改善 Unity 文档的质量。

关闭

取消

说明

在 Unity 渲染单个摄像机之前,可以使用代表来调用自定义代码。

当 Unity 调用 RenderPipeline.BeginCameraRendering 时,它将执行此委托的调用列表中的方法。

在通用渲染管线 (URP) 和高精渲染管线 (HDRP) 中,Unity 会自动调用 RenderPipeline.BeginCameraRendering。如果您正在编写自定义可编程渲染管线并且希望使用此委托,您必须添加对 RenderPipeline.BeginCameraRendering 的调用。

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

using UnityEngine;
using UnityEngine.Rendering;

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

void OnBeginCameraRendering(ScriptableRenderContext context, Camera camera) { // Put the code that you want to execute before the camera renders here // If you are using URP or HDRP, Unity calls this method automatically // If you are writing a custom SRP, you must call RenderPipeline.BeginCameraRendering }

void OnDestroy() { RenderPipelineManager.beginCameraRendering -= OnBeginCameraRendering; } }