Unity 3D:Graphics.DrawMesh 不再适用于 Unity 5.3.1f

Unity 3D: Graphics.DrawMesh not working in Unity 5.3.1f anymore

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

正如您在图片中看到的,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)) 条件是否为真 - 是的。有什么想法可能导致这个问题吗?

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

我尝试将 Parent Object 高光 移近相机,但由于我使用了 localPosition 它并没有影响child。移动 child 我能够看到突出显示的区域并意识到我的错误。

代码更改为

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

并将 parent object Highlighttransform.z 更改为 -0.01f