【发布时间】:2021-09-25 12:44:40
【问题描述】:
我正在使用 Apple 的 GeoTrackingExample 项目:
并且逻辑中存在一个错误,即在您重置 AR 会话后,它仍会在 URL 中保留锚点信息。所以步骤如下:
- 启动应用程序
- 在视图中点击并放置一个对象
- 从菜单中选择重置 AR 会话
- 在视图中点击以放置对象
- 从菜单中选择保存锚点
- 将文件保存到设备
- 重置 AR 会话
- 加载保存的文件
当文件加载时,它将加载在步骤 2 中放置在 AR 视图中然后在步骤 3 中删除的初始对象以及在步骤 4 中放置的添加对象。它应该只保存在步骤 4 中添加的对象,而不是第 2 步和第 4 步中的两个对象。在逐步调试代码时,似乎锚已从 ARview 中删除,但不知何故 URL 将包含两个锚的路径。我还需要做些什么来清除以前会话中的对象不会添加到当前会话中的 URL 中?将对象添加到 ARView 时是否修改了 URL?请帮忙!谢谢
【问题讨论】:
-
我发现逻辑问题,当一个会话被重置时, arView.scene.anchors.removeAll() 语句被执行但没有清除一个全局变量: var currentAnchors: [ARAnchor] { return arView. session.currentFrame?.anchors ?? [] }。我不是 100% 肯定的,但看起来这个语句在每次将锚添加到场景时都会在数组中添加一个元素,但在场景中的锚被移除时不会被清除。
标签: swift xcode geolocation arkit realitykit