首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全息透镜空间映射问题

全息透镜空间映射问题
EN

Stack Overflow用户
提问于 2016-08-16 13:35:13
回答 1查看 984关注 0票数 0

在使用空间映射时,我在以下位置得到一个错误:

代码语言:javascript
复制
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结构中;

代码语言:javascript
复制
-       $exception  {"Value cannot be null.\r\nParameter name: dataRequest.outputMesh"} System.ArgumentNullException

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-17 03:50:09

来自MS站点的报价

使用最新的网格渲染空间表面,并(可选)将其用于物理碰撞和光线投射。确认SurfaceData的内容不是null很重要。

这意味着在调用smsd并将其传递到Observer.RequestMeshAsync函数之前,您必须检查它是否为null

代码语言:javascript
复制
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);
            }
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38976418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档