我有一个ARSCNView,偶尔会根据情况暂停其session
。有没有办法检查其class myARView: ARSCNView {
...
func foo() {
if(session.running) {
// do stuff
}
}
...
}
是否正在运行?
这样的事情:
@OneToMany(mappedBy = "course",fetch=FetchType.EAGER)
@JsonIgnoreProperties("course")
private Set<Student> students;
答案 0 :(得分:3)
此时,似乎无法通过ARSession对象本身检查会话是否正在运行。但是,通过实施ARSCNViewDelegate
,您可以在会话中断或中断结束时收到通知。
实现目标的一种方法是设置布尔值并在暂停/恢复会话时更新它,并在函数中检查其值。
class ViewController: UIViewController, ARSCNViewDelegate {
var isSessionRunning: Bool
func foo() {
if self.isSessionRunning {
// do stuff
}
}
func pauseSession() {
self.sceneView.session.pause()
self.isSessionRunning = false
}
func runSession() {
let configuration = ARWorldTrackingConfiguration()
sceneView.session.run(configuration)
self.isSessionRunning = true
}
// ARSCNViewDelegate:
func sessionWasInterrupted(_ session: ARSession) {
self.isSessionRunning = false
}
func sessionInterruptionEnded(_ session: ARSession) {
self.isSessionRunning = true
}
}