如何检查当前正在运行的跟踪配置?
if sceneview.session.configuration == ARWorldTrakingConfiguration() {
print("foo")
}
不做这项工作。我了解我正在比较某些类型,因此该陈述永远都不是正确的。但是有什么办法吗?
答案 0 :(得分:0)
所有ARSession
配置都是ARConfiguration
的子类,因此您可以检查您当前的配置是否具有适当的类型,如下所示:
if sceneView.session.configuration is ARWorldTrackingConfiguration {
print("configuration is of type ARWorldTrakingConfiguration")
}
答案 1 :(得分:0)
您必须在DispatchQueue.main.asyncAfter()
内使用 if语句,以便花更多的时间(0.5秒)来初始化和运行配置。
这是一个代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let configuration = ARWorldTrackingConfiguration()
sceneView.session.run(configuration)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
if self.sceneView.session.configuration == ARWorldTrackingConfiguration() {
print("Current configuration is a WorldTracking")
} else {
print("Current configuration isn't known")
}
}
}
P.S。请记住,它不适用于iOS模拟器和Playground 。