MRTK V2-空间感知网格的可视化无法正常工作

问题描述 投票:0回答:1

在我的项目中,我使用的按钮可启用和禁用空间映射/感知。在10次中的7次中,它的效果很好。在其他3次中,可以观察到以下行为。通过禁用空间贴图网格(多边形),它们会消失到90%。但是10%会留在原地。重复按我的按钮(禁用/启用空间贴图)无济于事,仅保留10%。有什么建议导致这种行为的原因是什么?代码观察者:

public void ToggleObservers()
{
    if (SpatialAwarenessSystem == null) return;

    // If running → stop "running"
    if (_isObserverRunning)
    {
        SetVisualizationOfSpatialMapping(SpatialAwarenessMeshDisplayOptions.None);
        SpatialAwarenessSystem.SuspendObservers();
        _isObserverRunning = false;

        // Disabling the whole system boosts performance ~+5fps
        if (ShouldSpatialSystemBeDisabled)
            SpatialAwarenessSystem.Disable();

    }// Else start spatial mapping
    else
    {
        SpatialAwarenessSystem.Enable();
        SetVisualizationOfSpatialMapping(SpatialAwarenessMeshDisplayOptions.Visible);
        SpatialAwarenessSystem.ResumeObservers();
        _isObserverRunning = true;
    }
}

空间映射的代码集可视化:

public void SetVisualizationOfSpatialMapping(SpatialAwarenessMeshDisplayOptions option)
{
    if (CoreServices.SpatialAwarenessSystem is IMixedRealityDataProviderAccess provider)
    {
        foreach (var observer in provider.GetDataProviders())
        {
            if (observer is IMixedRealitySpatialAwarenessMeshObserver meshObs)
            {
                meshObs.DisplayOption = option;
            }
        }
    }
}

编辑:错误Report on Github

unity3d augmented-reality hololens mrtk
1个回答
0
投票

这似乎是一种竞争条件,其中网格检测到的逻辑不遵守观察者的状态(暂停或恢复)。感谢您的问题@Perazim!

© www.soinside.com 2019 - 2024. All rights reserved.