Swift SCNTransformConstraint不允许限制Eulerangle

Swift SCNTransformConstraint不允许限制Eulerangle,swift,transform,scnnode,Swift,Transform,Scnnode,我想限制Scenekit中相机的角度,使相机不能向上看(指向天空)。由于某些原因,我没有正确地获取SCNTransformConstraint。怎么办 let cameraNode = SCNNode() let camera = SCNCamera() cameraNode.camera = camera cameraNode.position = SCNVector3(x: 0, y: 10, z: 30) let center = SCNNode(

我想限制Scenekit中相机的角度,使相机不能向上看(指向天空)。由于某些原因,我没有正确地获取SCNTransformConstraint。怎么办

    let cameraNode = SCNNode()
    let camera = SCNCamera()
    cameraNode.camera = camera
    cameraNode.position = SCNVector3(x: 0, y: 10, z: 30)

    let center = SCNNode()
    center.position = SCNVector3Make(15, 0, 10)
    let lookConstraint = SCNLookAtConstraint(target: center)
    lookConstraint.isGimbalLockEnabled = true

    // Make the constraint to not allow the camera to point upwards
    let transformConstraint = SCNTransformConstraint(inWorldSpace: true, with: {
        node, matrix in

        var newMatrix = matrix
        let currentNode = node as SCNNode

        if (currentNode.presentation.eulerAngles.x > 0) {
            newMatrix.m31 = 0.0
        }


        return newMatrix
    })

    cameraNode.constraints = [lookConstraint, transformConstraint]
    scene.rootNode.addChildNode(cameraNode)
我想我设置的
newMatrix.m31
不正确