作者:你是我的小二郎 | 来源:互联网 | 2023-01-29 19:17
我正在尝试在我的应用程序(Tabbed应用程序)中实现iOS 11 beta的ARKit.但正如在ARKit会话暂停和不恢复线程中所述,每当我将选项卡更改为另一个视图控制器并返回时,ARSession就会冻结而不会恢复.
是否可以在选项卡式应用程序中实现ARSCNView,这样如果你回来我可以恢复ARSession?如果是这样怎么办?
1> Vasilii Mura..:
是的你可以:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let cOnfiguration= ARWorldTrackingSessionConfiguration()
sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}
当视图消失时停止会话,并在显示视图时重新运行清除锚点和重置跟踪的会话.另外为了避免出现和消失ASCNView更好地使用弹出视图控制器.
为了获得更好的用户体验,请参阅Apple如何在其演示项目中执行这些弹出窗口
是的.即使您解决了"冻结"问题,如果您离开另一个全屏视图控制器并返回,您也可以从头开始有效地启动用户的AR体验.最好使用弹出框或类似功能来保持AR视图的运行,或者设计您的应用程序,这样您就不需要保持正在进行的体验.