MRTK v2空间映射隐藏多边形的可视化

问题描述

如何隐藏多边形的可视化?

我使用以下方法,但仍然失败。

// Get the first Mesh Observer available,generally we have only one registered
var observer = CoreServices.GetSpatialAwarenessSystemDataProvider<IMixedRealitySpatialAwarenessMeshObserver>();

// Set to not visible
observer.DisplayOption = SpatialAwarenessMeshDisplayOptions.None;

解决方法

我查看了一个旧项目,在其中启用和禁用了空间映射。我猜您必须在更改DisplayOption之后恢复观察者。那就是我的做法:

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();
            Debug.Log("Spatial map system was disabled.");
        }            
    } // 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;
            }
        }
    }
}

private IMixedRealitySpatialAwarenessSystem SpatialAwarenessSystem
{
    get
    {
        if (_spatialAwarenessSystem == null)
        {
            MixedRealityServiceRegistry.TryGetService<IMixedRealitySpatialAwarenessSystem>(out _spatialAwarenessSystem);
        }
        return _spatialAwarenessSystem;
    }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...