ios - 我可以观察 SCNView 的相机变换吗?

标签 ios scenekit

我有一个启用了 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)

}

据此,Pitch, Yaw & Roll 指的是: enter image description here

希望这能让你开始......

关于ios - 我可以观察 SCNView 的相机变换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590105/

相关文章:

swift - SceneKit/ARKit 中不可见阴影平面的问题

opengl-es - SceneKit 使用纹理坐标绘制纹理

swift - 在三角形带中隐藏三角形? (以编程方式隐藏部分模型)

iphone - 我如何从用户未激活/触摸的应用程序外部收到的推送通知中接收信息?

ios - 在 iBeacon Detection 上触发对被杀死/退出的应用程序的本地通知

javascript - iOS iPad 平板电脑无法正确呈现视口(viewport)

ios - 围绕对象旋转和移动相机不起作用 Swift SceneKit

ios - 使用 Parse 在 Swift 中实现相似和不同的功能

ios - 如何在 Objective-C 中将单斜杠 "\"替换为 "\\\"

swift - 如何从 "ambientIntensity"获取以流明表示的 Lux 值?