unity3d - MRTK V2 - 空间感知网格的可视化无法正常工作
问题描述
在我的项目中,我使用了一个启用和禁用空间映射/感知的按钮。它工作得很好,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;
}
}
}
}
编辑: Github 上的 错误报告。
解决方案
这似乎是一种竞争条件,其中网格检测到的逻辑不遵守观察者的状态(暂停或恢复)。感谢@Perazim 的问题!
推荐阅读
- sql - SQL电子商务数据库。如何在同一行关联外键?
- dig - 解码挖掘输出:+norecurse @nameserver MX 到域
- windows - Windows 10 上的 Apache 2.4.46 虚拟主机
- c# - Blazor EditForm 以编程方式提交
- spring-boot - 在哪里可以找到 SpringBoot 包的 SHA256/SHA512 哈希?
- javascript - 如何将嵌入查询与 wordpress rest api 一起使用?
- powerbi - 如何在 PowerBI 中使用 DAX 创建动态子表
- php - 我需要为每个重复输入创建一个新的 id 吗?
- octave - 为 Octave 安装 Rainflow 算法
- javascript - 如何使用 React Native 将图像上传到 Web 服务器