Ios ARKit 2:从后端重新加载ARWorldMap时,虚拟对象是浮动的
我目前正在开发一个可以保存和重新加载的应用程序(由于在WWDC18上发布ARKit 2而成为可能)。当我检索存储在后端的世界地图并在重新加载的情况下运行ar会话时,对象会四处浮动,直到对象放置在其原始曲面上(从原始会话)。我可以通过隐藏对象来防止这个问题,直到我可以断言对象是,但在苹果发布了iOS的beta 4更新后,这就不再起作用了,iOS也更新了ARKit SDK。是否有其他人遇到此问题和/或找到解决方案 以下是以前解决此问题的代码:Ios ARKit 2:从后端重新加载ARWorldMap时,虚拟对象是浮动的,ios,swift,augmented-reality,arkit,Ios,Swift,Augmented Reality,Arkit,我目前正在开发一个可以保存和重新加载的应用程序(由于在WWDC18上发布ARKit 2而成为可能)。当我检索存储在后端的世界地图并在重新加载的情况下运行ar会话时,对象会四处浮动,直到对象放置在其原始曲面上(从原始会话)。我可以通过隐藏对象来防止这个问题,直到我可以断言对象是,但在苹果发布了iOS的beta 4更新后,这就不再起作用了,iOS也更新了ARKit SDK。是否有其他人遇到此问题和/或找到解决方案 以下是以前解决此问题的代码: func renderer(_ renderer: SC
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
if let _ = anchor as? ARPlaneAnchor {
for object in self.virtualObjectLoader.loadedObjects {
if object.modelName == anchor.name {
DispatchQueue.main.async {
object.isHidden = false
}
}
}
}
}
在什么时候将对象添加到场景中(在重新定位期间)?我觉得你太快了 此外,我发现在对象周围添加多个aranchor有助于实现某些“滑动/移动” ARWorldMaps有一组Aranchor,这些Aranchor将在重新定位期间添加到场景中,我已将其中一个锚点指定为我的对象的锚点,当我看到它们放置在渲染器中时:didAddNode:ForAnchor:我使用该锚点添加我的对象
guard let object = items.filter({ (item) -> Bool in
return item.anchor == anchor
}).first else { return }
// Then add the object