【问题标题】:Can I observe the camera transform of a SCNView?我可以观察 SCNView 的相机变换吗?
【发布时间】:2018-09-10 10:05:43
【问题描述】:

我有一个SCNView 启用了allowsCameraControl 属性。我想在相机变化时(通过用户手势)观察相机方向,我该怎么做?

【问题讨论】:

    标签: ios scenekit


    【解决方案1】:

    当您将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 指的是以下内容:

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

    【讨论】:

    • 感谢您的广泛回答。我知道 pointOfView SCNNode,带有摄像头。我不知道如何获得更改通知,但是您对 SCNSceneRendererDelegate 的引用让我走上了正轨。
    猜你喜欢
    • 1970-01-01
    • 2016-02-07
    • 2011-06-17
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多