【发布时间】:2018-09-10 10:05:43
【问题描述】:
我有一个SCNView 启用了allowsCameraControl 属性。我想在相机变化时(通过用户手势)观察相机方向,我该怎么做?
【问题讨论】:
我有一个SCNView 启用了allowsCameraControl 属性。我想在相机变化时(通过用户手势)观察相机方向,我该怎么做?
【问题讨论】:
当您将allowsCameraControl 设置为true 时,SceneKit 添加一个Camera 作为rootNode 的子节点。
因此,要从摄像头获取信息,您可以在以下 delegate 回调中执行类似操作:
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
//1. Get The Camera From The ARSCNScene
if let currentPointOfView = augmentedRealityView?.pointOfView{
let pitch = currentPointOfView.eulerAngles.x
let yaw = currentPointOfView.eulerAngles.y
let roll = currentPointOfView.eulerAngles.z
print("""
Pitch = \(degreesFrom(pitch))
Yaw = \(degreesFrom(yaw))
Roll = \(degreesFrom(roll))
""")
}
}
/// Convert Radians To Degrees
///
/// - Parameter radian: Float
/// - Returns: Float
func degreesFrom( _ radian: Float) -> Float{
return radian * Float(180.0 / Double.pi)
}
希望这能让你开始......
【讨论】: