Unity3d Unity 3D:Graphics.DrawMesh不再在Unity 5.3.1f中工作
我使用GIS数据来表示一个小城市的地图,在大多数对象(图像中的灰色和蓝色)上使用恒定网格和网格渲染器进行了模拟。但某些元素(如房屋或下水道)有时会通过使用网格和UnityEngine.Graphics.DrawMesh函数进行高亮显示 如图所示,4.6.1f中使用的代码与5.3.1中使用的代码相同,但在5.3.1中没有。尽管可以看到网格是在场景视图中设置的 代码如下:Unity3d Unity 3D:Graphics.DrawMesh不再在Unity 5.3.1f中工作,unity3d,unity5,Unity3d,Unity5,我使用GIS数据来表示一个小城市的地图,在大多数对象(图像中的灰色和蓝色)上使用恒定网格和网格渲染器进行了模拟。但某些元素(如房屋或下水道)有时会通过使用网格和UnityEngine.Graphics.DrawMesh函数进行高亮显示 如图所示,4.6.1f中使用的代码与5.3.1中使用的代码相同,但在5.3.1中没有。尽管可以看到网格是在场景视图中设置的 代码如下: protected Mesh m; public void Update() { if ((isActiveAndE
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和highlightedreas都位于transform.position.z=0代码>虽然这在Unity 4.6.1中不是问题,但我认为它不会出现在5.X中 我尝试将父对象高亮显示移动到离摄影机更近的位置,但由于我使用了
localPosition
,因此不会影响子对象。移动孩子时,我能够看到突出显示的区域,并意识到我的错误
代码更改为
Graphics.DrawMesh(
m, transform.position,
transform.localRotation, material, 14);
并将父对象高亮显示的
transform.z
更改为-0.01f
问题是Map和highlighted区域都位于transform.position.z=0代码>虽然这在Unity 4.6.1中不是问题,但我认为它不会出现在5.X中
我尝试将父对象高亮显示移动到离摄影机更近的位置,但由于我使用了localPosition
,因此不会影响子对象。移动孩子时,我能够看到突出显示的区域,并意识到我的错误
代码更改为
Graphics.DrawMesh(
m, transform.position,
transform.localRotation, material, 14);
并将父对象高亮显示的transform.z
更改为-0.01f
Unity3D 5.x有许多错误。可能是其中之一。只需检查网格的法线,可能它们被翻转了。说Jerry,你可以通过删除“5.x”使你的第一句话更准确(我担心这可能只是又是一个旧的Buggy Unity):/谢谢@JoeBlow呵呵,但我真的觉得4.5.x和更高版本直到5.x都非常稳定。Unity3D 5.x有很多bug。可能是其中之一。只需检查网格的法线,可能它们被翻转了。说Jerry,你可以通过删除“5.x”使你的第一句话更准确(我担心这可能只是又是一个旧的Buggy Unity):/谢谢@JoeBlow呵呵,但我真的觉得4.5.x,后来一直到5.x都很稳定。