我目前正在使用ARKit和CoreLocation一起在屏幕上放置元素。这些元素(例如,建筑物,房屋等)是根据它们自己的坐标(经度/纬度)和用户坐标放置的。如您所知,即使通过设置最佳精度,CoreLocation也不总是很精确,并且用户位置和航向经常得到纠正。
在纠正了方向或用户位置后,如何重新调整所有内容而不必删除并重新添加所有Node?似乎您无法更改相机转换属性。我也尝试过setWorldOrigin(relativeTransform: simd_float4x4)
,但没有任何改变。
到目前为止,我发现最好的解决方案是使用SKAction,但是如果您有很多节点,它往往会非常昂贵并且会使应用程序变慢。
您能告诉我我做错了什么还是有更简单的方法吗?
答案 0 :(得分:1)
让我们考虑到只有用户的物理位置会发生变化,其他所有内容都相对于其他对象放置。因此,我建议您将所有节点的父节点设置为公共节点,可以将其添加为默认根的子节点。
因此您的结构应为
Error
通过这种方式,您可以更新rootNode -> myRootNode -> (all other 3D)
的翻译,它将所有子元素转移到位。