SceneKit – Get direction of camera

后端 未结 1 599
小蘑菇
小蘑菇 2021-02-02 04:28

I need to find out which direction a camera is looking at, e.g. if it is looking towards Z+, Z-, X+, or X-.

I\'ve tri

相关标签:
1条回答
  • 2021-02-02 05:00

    You can create an SCNNode that place it in worldFront property to get a vector with the x, y, and z direction.

    Another way you could do it is like how this project did it:

    // Credit to https://github.com/farice/ARShooter
    
    func getUserVector() -> (SCNVector3, SCNVector3) { // (direction, position)
            if let frame = self.sceneView.session.currentFrame {
                let mat = SCNMatrix4(frame.camera.transform) // 4x4 transform matrix describing camera in world space
                let dir = SCNVector3(-1 * mat.m31, -1 * mat.m32, -1 * mat.m33) // orientation of camera in world space
                let pos = SCNVector3(mat.m41, mat.m42, mat.m43) // location of camera in world space
    
                return (dir, pos)
            }
            return (SCNVector3(0, 0, -1), SCNVector3(0, 0, -0.2))
        }
    
    0 讨论(0)
提交回复
热议问题