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

MonoBehaviour.OnPreRender()

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

描述

事件函数,Unity 在 摄像机 渲染场景之前调用。

在内置渲染管线中,Unity 会在 摄像机 组件启用的同一 GameObject 上附加的 MonoBehaviour 上调用 OnPreRender,就在该摄像机渲染场景之前。使用 OnPreRender 在渲染循环的这一点执行您自己的代码;例如,您可以更改视觉设置以影响给定摄像机渲染时的场景。OnPreRender 可以是一个协程。

对于不需要脚本与摄像机组件位于同一 GameObject 上的类似功能,请参阅 Camera.onPreRender。对于可脚本化渲染管线中的类似功能,请参阅 RenderPipelineManager

Unity 在摄像机执行剔除操作后调用 OnPreRender。这意味着,如果您进行影响摄像机视野的更改,则更改将从下一帧开始生效。要对当前帧中摄像机看到的內容进行更改,请使用 MonoBehaviour.OnPreCull

当 Unity 调用 OnPreRender 时,摄像机的渲染目标和深度纹理尚未设置。如果您需要访问这些纹理,则可以使用 CommandBuffer 在渲染循环的稍后执行代码。

// This script lets you enable/disable fog per camera.
// by enabling or disabling the script in the title of the Inspector
// you can turn fog on or off per camera.

using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour { private bool revertFogState = false;

void OnPreRender() { revertFogState = RenderSettings.fog; RenderSettings.fog = enabled; }

void OnPostRender() { RenderSettings.fog = revertFogState; } }