Unity 3D:Graphics.DrawMesh不再在Unity 5.3.1f中工作

时间:2016-01-13 15:34:03

标签: unity3d unity5

我使用GIS数据进行模拟以表示小城市的地图,在大多数对象上使用常量网格和网格渲染器(图像中的灰色和蓝色)。但是有时候使用网格和UnityEngine.Graphics.DrawMesh函数突出显示房屋或污水渠等元素。

enter image description here

正如您在图片中看到的那样,4.6.1f中使用的相同代码渲染网格,而在5.3.1中则不是。虽然您可以看到在“场景”视图中设置了“网格”。

这是代码:

protected Mesh m;

public void Update()
{
    if ((isActiveAndEnabled) && (m!=null))
        Graphics.DrawMesh(
            m, transform.localPosition, 
            transform.localRotation, material, 14); //14 = Map Layer
}

场景和相机设置保持不变。我已经检查了 if((isActiveAndEnabled)&&(m!= null))条件是否为真 - 它是。有什么想法会导致这个问题?

1 个答案:

答案 0 :(得分:0)

问题是Map和HighlightedAreas都位于transform.position.z = 0;虽然这不是Unity 4.6.1 中的问题但我认为它不会是 5中的一个.X

enter image description here

我尝试将父对象突出显示移近相机,但由于我使用了localPosition,因此它不会影响孩子。移动孩子我能够看到突出显示的区域并意识到我的错误。

代码已更改为

Graphics.DrawMesh(
        m, transform.position, 
        transform.localRotation, material, 14);

并将父对象突出显示transform.z更改为-0.01f