我用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))条件是否为true -是的。有什么想法会导致这个问题吗?
发布于 2016-01-13 16:50:55
问题是Map和HighlightedAreas都位于transform.position.z = 0;上,而这在Unity4.6.1中并不是一个问题,我以为它不会是5.X中的问题。

我尝试将父对象高亮显示移到靠近摄像机的地方,但由于我使用了localPosition,它不会影响子对象。移动孩子,我能够看到突出的区域,并意识到我的错误。
代码更改为
Graphics.DrawMesh(
m, transform.position,
transform.localRotation, material, 14);并将父对象高亮显示的transform.z更改为-0.01f
https://stackoverflow.com/questions/34770677
复制相似问题