繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM