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 Highlight 的 transform.z
更改为 -0.01f
我使用 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 Highlight 的 transform.z
更改为 -0.01f