如何在ARKit中保存3D对象的真实位置,并且用户可以在下一个会话中看到它?

时间:2019-06-10 05:58:05

标签: ios swift scenekit arkit world-map

当我通过在平面上进行撞击而将3D对象放置在检测到的平面上时,我想保存该对象的真实世界坐标,并仅在该坐标下的下一次会话中看到该对象。

使用ARWorldMap,它取决于特征点和检测到的平面。如果我将对象放置在位于桌子上的笔记本(检测到的平面)上,然后在该笔记本上放置3D对象,并且我正在使用ARWorldMap并将对象加载到该保存的位置,则它将被加载,但是如果我将该笔记本放置在桌子的另一点上并尝试加载该对象,然后它也将被放置,因为检测到的平面是笔记本。

但是我想要代替检测到的平面(笔记本),而是将对象仅放置在之前放置对象的位置。我该如何实现?我需要使用该碰撞点的纬度或经度,还是可以通过现实世界的位置来获取?

1 个答案:

答案 0 :(得分:0)

ARKit在现实世界中的位置是基于世界原点的,每次您从不同的物理位置启动应用程序时,该位置都会有所不同。您需要使用“核心位置”并自己保存锚点的纬度/经度。