首页 > 解决方案 > 展开后改变 SCNNodes 的位置

问题描述

我有一个 ARKit 视图(第一个视图),其中我将节点设置为某些位置。然后,我想允许用户转到第二个视图,但也可以通过单击返回按钮返回到 ARKit 视图。该按钮会展开到 ARKit 视图,但当它展开时,节点的位置会根据手机的位置而改变。我可以以某种方式省略吗?无论手机的新位置如何,我都希望节点与第一次位于相同的位置

标签: swiftarkitscnnode

解决方案


我认为你的挑战很难解决,事实上,当移动到第二个视图时,第一个视图的会话是“暂停”的,所以解决方案应该部分编码在“viewWillDisappear”函数中,但由于两者之间的强关系设备的运动感应硬件和摄像头在会话暂停时从这些元素输入。

我会尝试创建一个大的 ARanchor 平面(例如所有楼层)并确保在移动到第二个视图之前禁用平面检测,然后根据“presentation.position”重新启用(或不启用)检测节点。我的意思是在移动到第二个视图之前尝试存储所有存在的节点(相机、地板、节点等)的一些 node.presentation.position

也许会尝试在锚定平面顶部使用一个大 SCNBox 节点,然后将可见节点放在 SCNBox 内......


推荐阅读