swift - 展开后改变 SCNNodes 的位置
问题描述
我有一个 ARKit 视图(第一个视图),其中我将节点设置为某些位置。然后,我想允许用户转到第二个视图,但也可以通过单击返回按钮返回到 ARKit 视图。该按钮会展开到 ARKit 视图,但当它展开时,节点的位置会根据手机的位置而改变。我可以以某种方式省略吗?无论手机的新位置如何,我都希望节点与第一次位于相同的位置
解决方案
我认为你的挑战很难解决,事实上,当移动到第二个视图时,第一个视图的会话是“暂停”的,所以解决方案应该部分编码在“viewWillDisappear”函数中,但由于两者之间的强关系设备的运动感应硬件和摄像头在会话暂停时从这些元素输入。
我会尝试创建一个大的 ARanchor 平面(例如所有楼层)并确保在移动到第二个视图之前禁用平面检测,然后根据“presentation.position”重新启用(或不启用)检测节点。我的意思是在移动到第二个视图之前尝试存储所有存在的节点(相机、地板、节点等)的一些 node.presentation.position
也许会尝试在锚定平面顶部使用一个大 SCNBox 节点,然后将可见节点放在 SCNBox 内......
推荐阅读
- ios - URL 方案没有为用户打开应用程序,但对我有用
- sql-server - 在 T-SQL 中添加计算字段以将字符串值转换为日期
- css - 如何更改 SVG 线条动画的起点?
- mysql - COUNT 数字在时间段之前不存在时不同
- ruby-on-rails - 使用 postgres 执行测试 Ruby on Rails 时出现数据库错误
- regex - git rm 可以使用正则表达式还是可以将文件的内容通过管道传输到 git rm?
- javascript - 从函数内部获取参数的名称?
- reactjs - 使用 Redux 操作查找多个 Firebase 条目
- c++ - 如何将指向类内成员的指针传递给外部类?
- php - PHP - cURL 注意:数组到字符串的转换