Hololens 空间映射问题
Hololens Spatial mapping issue
使用空间映射时,出现错误:
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 教程的一部分,因此其中没有任何内容是我的。
即使我没有做任何动作,只是四处张望,也会发生崩溃。
空参数在 smsd 结构中;
- $exception {"Value cannot be null.\r\nParameter name: dataRequest.outputMesh"} System.ArgumentNullException
有什么想法吗?
引自MS site:
Render the spatial surface with the latest mesh and (optionally) use
it for physics collisions and raycasts. It's important to confirm that
the contents of the SurfaceData
are not null.
这只是意味着您必须在调用 smsd
并将其传递给 Observer.RequestMeshAsync
函数之前检查 smsd
是否为 null
。
if (mappingEnabled)
{
foreach (GameObject surface in surfaces.Values)
{
surface.GetComponent<MeshRenderer>().enabled = DrawVisualMeshes;
}
if (surfaceWorkOutstanding == false && surfaceDataQueue.Count > 0)
{
SurfaceData smsd = surfaceDataQueue.Dequeue();
if (smsd.outputMesh == null || smsd.outputCollider == null || smsd.outputAnchor == null) { return; }
{
surfaceWorkOutstanding = Observer.RequestMeshAsync(smsd, Observer_OnDataReady);
}
}
}
使用空间映射时,出现错误:
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 教程的一部分,因此其中没有任何内容是我的。
即使我没有做任何动作,只是四处张望,也会发生崩溃。
空参数在 smsd 结构中;
- $exception {"Value cannot be null.\r\nParameter name: dataRequest.outputMesh"} System.ArgumentNullException
有什么想法吗?
引自MS site:
Render the spatial surface with the latest mesh and (optionally) use it for physics collisions and raycasts. It's important to confirm that the contents of the
SurfaceData
are not null.
这只是意味着您必须在调用 smsd
并将其传递给 Observer.RequestMeshAsync
函数之前检查 smsd
是否为 null
。
if (mappingEnabled)
{
foreach (GameObject surface in surfaces.Values)
{
surface.GetComponent<MeshRenderer>().enabled = DrawVisualMeshes;
}
if (surfaceWorkOutstanding == false && surfaceDataQueue.Count > 0)
{
SurfaceData smsd = surfaceDataQueue.Dequeue();
if (smsd.outputMesh == null || smsd.outputCollider == null || smsd.outputAnchor == null) { return; }
{
surfaceWorkOutstanding = Observer.RequestMeshAsync(smsd, Observer_OnDataReady);
}
}
}