MonoBehaviour.OnPreRender()
Описание
Функция события, которую Unity вызывает перед тем, как Camera рендируют сцену.
В течение Built-in Render Pipeline, Unity звонки OnPreRender на MonoBehaviours которые прикреплены к одному и тому же GameObject в качестве инвалида Camera компонент, непосредственно перед тем, как Camera отображает сцену. Использование OnPreRender выполнять свой собственный код в этом месте цикла рендеринга; например, вы можете изменить визуальные настройки, чтобы повлиять на сцену, Camera это рендеринг. OnPreRender может быть обычным делом.
Для аналогичной функциональности, которая не требует, чтобы скрипт был на том же GameObject как Camera компонент, см. Camera.onPreRender.
Примечание: OnPreRender зависит от Built-in Render Pipeline и не будет вызываться в проектах, использующих Scriptable или Universal Render Piplines. Для аналогичной функциональности в Scriptable Render Pipeline, см. RenderPipelineManager.
Unity звонки OnPreRender после Camera Это означает, что если вы внесете изменения, которые повлияют на то, что Camera изменения вступят в силу со следующего кадра. Чтобы изменить то, что видят пользователи, Camera видит в текущем кадре, использует MonoBehaviour.OnPreCull.
Когда Unity звонки OnPreRender, CameraТекстуры цели рендеринга и текстуры глубины еще не настроены. Если вам нужно получить к ним доступ, вы можете выполнить код позже в цикле рендеринга с помощью 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; } }
Дополнительные ресурсы: Camera.onPreRender, MonoBehaviour.OnPreCull, MonoBehaviour.OnPostRender, CommandBuffer, Расширение Built-in Render Pipeline с помощью CommandBuffers.