在MRTK中使用空间感知(又称空间映射)时,一个常见的问题是如何访问空间观察者以对其进行单独配置。
由于IMixedRealitySpatialAwarenessSystem接口的GetObserver方法已标记为过时,因此出现了问题。
答案 0 :(得分:1)
MRTP 2.0.0版本已标准化了跨服务访问数据提供者的模式,以便
下面的示例演示了访问空间感知网格观察者的这种模式。
if (CoreServices.SpatialAwarenessSystem != null)
{
IMixedRealityDataProviderAccess dataProviderAccess =
CoreServices.SpatialAwarenessSystem as IMixedRealityDataProviderAccess;
if (dataProviderAccess != null)
{
IReadOnlyList<IMixedRealitySpatialAwarenessMeshObserver> observers =
dataProviderAccess.GetDataProviders<IMixedRealitySpatialAwarenessMeshObserver>();
// Modify the observer(s)
foreach (IMixedRealitySpatialAwarenessMeshObserver observer in observers)
{
// Set the mesh to use the occlusion material
observer.DisplayOption = SpatialMeshDisplayOptions.Occlusion;
}
}
}