我正在尝试从MS Hololens获得空间网格上的最近点。有了这个参考,我可以很容易地获得SpatialAwarenessMeshObject对撞机和gameObject(https://learn.microsoft.com/en-us/windows/mixed-reality/mrtk-unity/features/spatial-awareness/usage-guide?view=mrtkunity-2021-01(
它正在运行,但不是我所期望的。计算的最近点不正确。我做对了吗?请让我知道OnObservationAdded和OnObservation Updated方法之间的区别。
在此处输入图像描述LineManager.cs脚本:我想在空间网格上画一条从某个点到最近点的线。这个脚本试图获得空间AwarenessMeshObject的对撞机并找到它上最近的点。
在此处输入图像描述MeshManager.cs:这个脚本实现了来自SpatialAwarenessHandler的虚拟方法。我真的不知道每个虚拟方法意味着什么。
谢谢。
尝试为distance属性渲染一条线是非常昂贵的。我们可以尝试以下步骤来完成此任务:首先,用Camera.mainCamera.gameObject.transform.position
获取主摄影机的位置,用Mesh.vertices
获取网格的顶点位置。然后,利用Mesh.Transform.TransformPoint
将顶点位置从局部空间变换到世界空间。最后,调用Vector3.Distance
来获取它们之间的距离。
请让我知道OnObservationAdded和OnObservation Updated方法之间的区别。
OnObservationAdded
在观察者创建网格时升高,OnObservationUpdated
在网格更新时升高。请查看此源代码以了解其工作原理:BaseSpatialMeshObserver。