嘿,我一直在努力获取设备摄像头/ ARCamera的价值。据我所知,只有一个函数允许我访问这些ARCamera特征。这就是这里的功能:
代码:
// Only gets called couple times when camera state changes
func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera)
print("\(camera.eulerAngles)")
}我一直在考虑使用一些技巧,比如在调用该值的函数中添加一个重复计时器。但我不能打电话给被启动的本地选择器。我更想知道的是,这个函数是如何实现的:
func renderer(_ aRenderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
// This constantly gets called.
}我想知道是否有一种将ARCamera合并到函数中的方法。
发布于 2017-07-26 04:39:31
如果您想要不断获得相机状态的更新,请实现ARSessionDelegate.session(_:didUpdate:)。
class MyDelegate: ARSessionDelegate {
func session(_ session: ARSession, didUpdate frame: ARFrame) {
print("\(frame.camera)")
}
/* ... */
}ARFrame对象应包含包含所有必要信息的camera字段。
如果您只想知道何时跟踪状态更改,您可能希望将来自session(_:cameraDidChangeTrackingState:)的状态存储在字段中,并在呈现循环中引用该状态:
class MyDelegate: SCNSceneRendererDelegate, ARSessionObserver {
var camera: ARCamera! = nil
func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera) {
self.camera = camera
}
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
print("\(self.camera.trackingState)")
}
/* ... more methods ... */
}https://stackoverflow.com/questions/45317413
复制相似问题