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

Camera.onPostRender

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册
public static Camera.CameraCallback onPostRender;

描述

您可以使用此委托在 Camera 渲染场景后执行自定义代码。

在内置渲染管线中,Unity 在任何 Camera 完成渲染后调用 onPostRender。要在此处执行自定义代码,请创建与 CameraCallback 签名匹配的回调,并将它们添加到此委托中。

对于仅适用于单个 Camera 并要求您的脚本位于同一个 GameObject 上的类似功能,请参阅 MonoBehaviour.OnPostRender

如果您使用的是可脚本化的渲染管线,例如通用渲染管线,请改用 RenderPipelineManager

要执行代码以在 Unity 渲染所有 Camera 和 GUI 后执行代码,请使用 WaitForEndOfFrameCommandBuffer

using UnityEngine;

public class CameraCallbackExample : MonoBehaviour { // Add your callback to the delegate's invocation list void Start() { Camera.onPostRender += OnPostRenderCallback; }

// Unity calls the methods in this delegate's invocation list before rendering any camera void OnPostRenderCallback(Camera cam) { Debug.Log("Camera callback: Camera name is " + cam.name);

// Unity calls this for every active Camera. // If you're only interested in a particular Camera, // check whether the Camera is the one you're interested in if (cam == Camera.main) { // Put your custom code here } }

// Remove your callback from the delegate's invocation list void OnDestroy() { Camera.onPostRender -= OnPostRenderCallback; } }