检测用户位置是否在区域描述文件内

Detecting if the user position is within Area Description File

我正在尝试创建一个简单的 AR 游戏,我希望能够检测用户位置是否在 ADF 中。我不确定该怎么做。我尝试加载选定的 ADF,然后将设备框架与 ADF 框架进行比较,但它不起作用。我可以得出一个可步行区域,但我也不确定该怎么做。

如果您加载了 ADF 并且设备已重新定位,则带有 ADF 框架的设备框架(我将使用符号 adf_T_device)应该可以工作。

1。 adf_T_device 在学习模式中:

在学习模式下,adf_T_device姿势将在服务启动后立即生效。在学习模式下,这个姿势代表优化后的姿势(闭环)。所以你会看到这个姿势开始建立对 start_service_T_device 姿势的偏移,这是因为 under-layer 系统正在纠正它的姿势。

2。 adf_T_device 已加载 ADF:

但是,当系统中加载了 ADF 时,adf_T_device 姿势将无效,直到根据加载的 ADF 重新定位设备。如果长时间没有看到设备重新定位,可能是环境变化太大,导致系统无法识别了。由于对象变化或照明条件变化,这很常见。我建议您录制一个新的 ADF 并重试。此外,当您录制 ADF 时,请尝试从各个角度记录该区域。我一直认为录音的过程就是在喷漆。绘制所有区域后,ADF 便会正确构建。在 Unity 中,我们有一个区域学习示例场景,展示了如何构建 ADF。

3。构建步行区域:

要构建可步行区域,我建议您将世界分成小的 "cube",技术上是八叉树。八叉树的大小由应用程序的用例决定。在学习模式下,每个adf_T_device的位置应该命中八叉树中的一个"cube",走一圈(学习区域)后,你将得到一组可行走的"cube" .接下来运行,或者加载ADF时,你可以使用这个八叉树来测试特定区域在ADF中是否有效。