Описание
Делегат, который можно использовать для выполнения пользовательского кода до того, как Camera отберет сцену.
Во встроенном конвейере рендеринга Unity вызывает onPreCull
перед выполнением операции отбраковки, которая определяет, что может видеть камера. Чтобы выполнить пользовательский код на этом этапе, создайте обратные вызовы, соответствующие сигнатуре CameraCallback, и добавьте их к этому делегату. Например, вы можете изменить настройки камеры, чтобы повлиять на то, что она видит.
Сведения об аналогичных функциях, применимых только к одной камере и требующих, чтобы ваш скрипт находился на том же игровом объекте, см. в разделе MonoBehaviour.OnPreCull. Аналогичные функции конвейера рендеринга с поддержкой сценариев см. в разделе RenderPipelineManager.
using UnityEngine;
public class CameraCallbackExample : MonoBehaviour
{
// Add your callback to the delegate's invocation list
void Start()
{
Camera.onPreCull += OnPreCullCallback;
}
// Unity calls the methods in this delegate's invocation list before rendering any camera
void OnPreCullCallback(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.onPreCull -= OnPreCullCallback;
}
}
Смотрите так же: CameraCallback, Camera.onPreRender, Camera.onPostRender, MonoBehaviour.OnPreCull, CommandBuffer, Extending the Built-in Render Pipeline using CommandBuffers.