MonoBehaviour.OnPreCull()
Описание
Функция события, которую вызывает Unity перед тем, как Camera вычеркивает сцену.
В Built-in Render Pipeline, Unity вызывает OnPreCull на MonoBehaviours, которые присоединены к тому же GameObject как активированный компонент Camera, непосредственно перед тем, как Camera выполняет операцию вычленения, которая определяет, что он может видеть. Используйте OnPreCull для выполнения вашего собственного кода на этом этапе цикла рендеринга; например, вы можете изменить настройки Camera перед выполнением операции вычленения, чтобы повлиять на то, что видит Camera. OnPreCull может быть сопутствующей процедурой.
Для аналогичной функциональности, которая не требует, чтобы скрипт находился на том же GameObject, что и компонент Camera, см. Camera.onPreCull.
Примечание: OnPreCull зависит от Built-in Render Pipeline и не будет вызвана в проектах, использующих Scriptable или Universal Render Piplines. Для аналогичной функциональности в Scriptable Render Pipeline, см. RenderPipelineManager.
// Attach this to the same GameObject as a Camera component. // This script inverts the view of the Camera, so that everything rendered by it is flipped
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { Camera cam;
void Start() { cam = GetComponent<Camera>(); }
void OnPreCull() { cam.ResetWorldToCameraMatrix(); cam.ResetProjectionMatrix(); cam.projectionMatrix = cam.projectionMatrix * Matrix4x4.Scale(new Vector3(1, -1, 1)); }
void OnPreRender() { GL.invertCulling = true; }
void OnPostRender() { GL.invertCulling = false; } }
Дополнительные ресурсы: Camera.onPreCull, MonoBehaviour.OnPreRender, MonoBehaviour.OnPostRender, CommandBuffer, Расширение Built-in Render Pipeline с помощью CommandBuffers.