Camera.onPreCull
Declaration
public static Camera.CameraCallback onPreCull;Описание
Делегирование, которое можно использовать для выполнения пользовательского кода до того, как Camera вычеркнет сцену.
В Built-in Render Pipeline, Unity вызывает onPreCull перед выполнением операции вычленения, которая определяет, что может видеть Camera. Чтобы выполнить пользовательский код на этом этапе, создайте обратные вызова, которые соответствуют подписи CameraCallback, и добавьте их к этому делегату. Например, вы можете изменить настройки Camera, чтобы повлиять на то, что видит Camera.
Для аналогичной функциональности, которая применяется только к одному Camera и требует, чтобы ваш скрипт был на том же GameObject, см. MonoBehaviour.OnPreCull.
Если вы используете Scriptable Render Pipeline, например Universal Render Pipeline, используйте вместо этого 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, Расширение Built-in Render Pipeline с помощью CommandBuffers.