[英]How re-adjust SKNodes base on user location
我目前正在使用ARKit和CoreLocation一起在屏幕上放置元素。 这些元素(例如,建筑物,房屋等)是根据它们自己的坐标(经度/纬度)和用户坐标放置的。 如您所知,即使通过设置最佳精度,CoreLocation也不总是很精确,并且用户位置和航向经常得到纠正。
纠正方向或用户位置后,如何重新调整所有内容,而不必删除并重新添加所有Node? 似乎您无法更改相机转换属性。 我还尝试了setWorldOrigin(relativeTransform: simd_float4x4)
但是它没有任何改变。
到目前为止,我发现最好的解决方案是使用SKAction,但是如果您有很多节点,它往往会非常昂贵并且会使应用程序运行缓慢。
您能告诉我我做错了什么吗,还是有更简单的方法来做?
让我们考虑一下,只有用户的物理位置会发生变化,其他所有内容都相对于其他对象放置。 因此,我建议您将所有节点的父节点设置为一个公共节点,可以将其添加为默认根的子节点。
所以你的结构是
rootNode -> myRootNode -> (all other 3D)
这样,您可以更新myRootNode
的转换,它将所有子级转移到位。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.