在Unity3D中仅显示和渲染线框中的特定对象

Tak*_*Tak 8 unity-game-engine unityscript

我想知道如何在线框中查看和渲染特定的游戏对象(网格),而不是整个场景.我可以将场景更改为线框使用,GL.wireframe但我想要查看的问题并且只渲染线框中的某个对象(不是整个场景).有什么建议吗?

Rob*_*rto 9

使用图层.将游戏对象的图层(Inspector窗口右上角的下拉列表)从Default更改为另一个图层(您可以在下拉菜单中选择Add Layer ...创建一个新图层).

然后,创建一个新相机(或选择主相机,具体取决于您想要实现的内容),并将其剔除蒙版更改为您在游戏对象中使用的图层.

要绘制线框,请将此脚本发布到应该绘制该游戏对象的相机中:

// from http://docs.unity3d.com/ScriptReference/GL-wireframe.html
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void OnPreRender() {
        GL.wireframe = true;
    }
    void OnPostRender() {
        GL.wireframe = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

您可能必须使用2个摄像头,具体取决于您想要实现的目标(一个摄像头用于线框对象,另一个摄像头用于绘制场景的其余部分),在这种情况下,您可以将其中一个摄像头的清晰标志设置为Don' t清楚.确保两个摄像头的深度值相同.

摄像机的清晰标志表示在没有任何东西被绘制的像素(空白区域)的情况下会发生什么,以及当多个摄像机绘制到同一像素时会发生什么.

在该情况下清除标志不清除,也不会与空的空间做任何事情,留下了其他相机填充对象或背景.对于应该绘制某些东西的像素,它会让对象的深度决定要绘制的内容,也就是说,靠近相机的对象将被绘制在其他对象的顶部.