Ios 如何根据用户位置重新调整SKNodes

Ios 如何根据用户位置重新调整SKNodes,ios,swift,core-location,arkit,Ios,Swift,Core Location,Arkit,我目前正在使用ARKit和CoreLocation将元素放在屏幕上。这些元素(例如建筑、房屋等)是基于其自身坐标(经度/纬度)和用户坐标放置的。正如您所知,即使设置了最佳精度,核心位置也不总是精确的,用户位置和航向也经常被纠正 当航向或用户位置已更正时,如何重新调整所有内容而不必删除和重新添加所有节点?似乎无法更改“摄影机平移”属性。我还尝试了setWorldOrigin(relativeTransform:simd\u float4x4),但它没有改变任何事情 到目前为止,我找到的最好的解决方

我目前正在使用ARKit和CoreLocation将元素放在屏幕上。这些元素(例如建筑、房屋等)是基于其自身坐标(经度/纬度)和用户坐标放置的。正如您所知,即使设置了最佳精度,核心位置也不总是精确的,用户位置和航向也经常被纠正

当航向或用户位置已更正时,如何重新调整所有内容而不必删除和重新添加所有节点?似乎无法更改“摄影机平移”属性。我还尝试了
setWorldOrigin(relativeTransform:simd\u float4x4)
,但它没有改变任何事情

到目前为止,我找到的最好的解决方案是使用SKAction,但是如果你有很多节点,它往往非常昂贵,并且会降低应用程序的速度


你能告诉我,如果我做错了什么,还是有更简单的方法来做?

让我们考虑只有用户的物理位置改变,其他的东西都相对地放置在其他对象上。因此,我建议您将所有节点的父节点设置为公共节点,该节点可以作为默认根节点的子节点添加

所以你的结构是

rootNode->myRootNode->(所有其他3D)

通过这种方式,您可以更新
myRootNode
的翻译,并将其所有子节点移动到位