Unity 6.3
0 онлайн 8 гостей 3 в системе
Вход

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); } } }