Описание
Функция события, которую Unity вызывает перед тем, как Camera выберет сцену.
Во встроенном конвейере рендеринга Unity вызывает OnPreCull
для MonoBehaviours, которые подключены к тому же GameObject, что и включенная Camera непосредственно перед тем, как камера выполнит операцию отбраковки, определяющую, что она может видеть. Используйте OnPreCull
для выполнения собственного кода в этой точке цикла рендеринга; например, вы можете изменить настройки камеры перед выполнением операции отбраковки, чтобы повлиять на то, что видит камера. OnPreCull
может быть сопрограммой.
Сведения об аналогичных функциях, не требующих, чтобы сценарий находился в том же игровом объекте, что и компонент камеры, см. в разделе Camera.onPreCull. Аналогичные функции конвейера рендеринга с поддержкой сценариев см. в разделе 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, Extending the Built-in Render Pipeline using CommandBuffers.