版本: Unity 6 (6000.0)
语言English
  • C#

MonoBehaviour.OnRenderObject()

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交的内容,但我们会阅读用户提出的每一项修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

描述

OnRenderObject 在相机渲染完场景后被调用。

这可以用于使用 Graphics.RenderMesh 或其他函数渲染您自己的对象。此函数类似于 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); } } }