MonoBehaviour.OnRenderObject()
Описание
OnRenderObject вызывается после того, как камера отобразила Scene.
Эта функция может быть использована для рендеринга собственных объектов с помощью Graphics.RenderMesh или других функций. Эта функция похожа на OnPostRender, за исключением того, что OnRenderObject вызывается на любом объекте, имеющем скрипт с функцией; независимо от того, прикреплен ли он к Camera или нет. Вы должны использовать эту функцию только для рисования и не изменять никаких высокоуровневых состояний рендеринга.
Примечание: OnRenderObject вызывается автоматически Built-in Render Pipeline и универсальной линейкой рендеринга (URP), но не Render Pipeline высокого разрешения (HDRP). Для эквивалентной функциональности используйте RenderPipelineManager.endCameraRendering или ScriptableRenderPass в URP, или Custom Pass в HDRP.
Обратите внимание, что эта функция может повлиять на производительность, так как она запускается для каждого GameObject со скриптом, использующим этот обратный вызов.
using System.Collections; using UnityEngine;
public class ExampleClass : MonoBehaviour { public Mesh mainMesh; public Mesh miniMapMesh;
void OnRenderObject() { // Render different meshes for the object depending on whether // the main camera or minimap camera is viewing. if (Camera.current.name == "MiniMapcam") { Graphics.DrawMeshNow(miniMapMesh, transform.position, transform.rotation); } else { Graphics.DrawMeshNow(mainMesh, transform.position, transform.rotation); } } }