Hololens空间地图问题

本文关键字:问题 地图 空间 Hololens | 更新日期: 2023-09-27 18:02:32

在使用空间映射时,我在处收到一个错误

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。这段代码是全息透镜教程的一部分,所以里面没有我的。

即使我没有采取任何行动,只是环顾四周,也会发生车祸。

null参数在smsd结构中;

-       $exception  {"Value cannot be null.'r'nParameter name: dataRequest.outputMesh"} System.ArgumentNullException

有什么想法吗?

Hololens空间地图问题

来自MS站点的报价:

使用最新网格渲染空间曲面,并(可选(使用它用于物理碰撞和光线投射。重要的是要确认则CCD_ 1的内容不为空。

这只是意味着在调用并将其传递到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);
            }
        }
    }