Version: 2021.2

MonoBehaviour.OnRenderObject()

切换到手册

描述

在摄像机渲染场景后,将调用 OnRenderObject。

这可以用于通过 Graphics.DrawMeshNow 或其他函数渲染自己的对象。 此函数类似于 OnPostRender,但 OnRenderObject 是在具有包含该函数的脚本 的任何对象上调用(无论是否附加到摄像机)。 只应使用此函数绘制(而不能更改)任何高级渲染状态。

请注意,此函数可能会影响性能,因为它会对具有使用此回调的脚本的每个 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); } } }