我有一个启用了 allowsCameraControl
属性的 SCNView
。我想在相机方向变化时观察相机方向(通过用户手势),我该怎么做?
最佳答案
当您将 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)
}
希望这能让你开始......
关于ios - 我可以观察 SCNView 的相机变换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590105/