0

我试图获得从 MS Hololens 获得的空间网格上的最近点。我可以通过此参考轻松获得 SpatialAwarenessMeshObject 对撞机和游戏对象(https://docs.microsoft.com/en-us/windows/mixed-reality/mrtk-unity/features/spatial-awareness/usage-guide?view=mrtkunity -2021-01 )

它正在运行,但不是我所期望的。计算的最近点不正确。我做对了吗?请让我知道 OnObservationAdded 和 OnObservationUpdated 方法之间的区别。

在此处输入图像描述 LineManager.cs 脚本:我想在空间网格上从某个点到最近点绘制一条线。该脚本尝试获取 SpatialAwarenessMeshObject 的 Collider 并找到其上最近的点。

在此处输入图像描述 MeshManager.cs :此脚本实现来自 SpatialAwarenessHandler 的虚拟方法。我真的不知道每个虚拟方法的含义。

谢谢。

4

1 回答 1

0

尝试为距离属性渲染一条线非常昂贵。我们可以尝试以下步骤来完成此任务:首先,使用 获取主摄像机Camera.mainCamera.gameObject.transform.position的位置,使用 获取网格的顶点位置Mesh.vertices。然后,用 将顶点位置从局部空间转换到世界空间Mesh.Transform.TransformPoint。最后,调用Vector3.Distance以获取它们之间的距离。

请让我知道 OnObservationAdded 和 OnObservationUpdated 方法之间的区别。

OnObservationAdded每当观察者创建网格时OnObservationUpdated引发,并在更新网格时引发。请查看此源代码以了解其工作原理:BaseSpatialMeshObserver

于 2021-12-30T09:11:11.070 回答