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