【发布时间】:2016-08-16 13:35:13
【问题描述】:
在使用空间映射时,我在以下位置收到错误:
void Update()
{
if (mappingEnabled)
{
foreach (GameObject surface in surfaces.Values)
{
surface.GetComponent<MeshRenderer>().enabled = DrawVisualMeshes;
}
if (surfaceWorkOutstanding == false && surfaceDataQueue.Count > 0)
{
SurfaceData smsd = surfaceDataQueue.Dequeue();
surfaceWorkOutstanding = Observer.RequestMeshAsync(smsd, Observer_OnDataReady);
}
}
}
最后一行得到一个 ArgumentNullException。该代码是 hololens 教程的一部分,所以里面没有我的。
即使我没有采取任何行动,只是环顾四周,也会发生崩溃。
null 参数在 smsd 结构中;
- $exception {"Value cannot be null.\r\nParameter name: dataRequest.outputMesh"} System.ArgumentNullException
有什么想法吗?
【问题讨论】:
-
surfaces.Values是列表还是数组? -
无,表面是一个字典,而 Values 返回一个 ValueCollection 对象,因此很可能只是一个 ICollection。不过,问题并不来自这个对象。 SurfaceData 是一个包含 MeshFilter、WorldAnchor 和 MeshCollider 的结构。当观察者更新时它被填充,但由于某种原因它是空的。