Ios Swift 3-SceneKit获取三维模型X Y Z旋转值

Ios Swift 3-SceneKit获取三维模型X Y Z旋转值,ios,3d,rotation,scenekit,collada,Ios,3d,Rotation,Scenekit,Collada,我有一个sceneView,在那里我加载了一个三维模型。模型显示良好,我可以通过触摸屏幕控制它 我需要的是在3d模型旋转时获得X,Y,Z旋转的值 如何实时获取这些值 我曾尝试使用带有手势识别器的相机旋转,但它们没有更新 override func viewDidLoad() { super.viewDidLoad() sceneView.scene = SCNScene(named: "PKB2"); sceneView.autoenables

我有一个
sceneView
,在那里我加载了一个三维模型。模型显示良好,我可以通过触摸屏幕控制它

我需要的是在3d模型旋转时获得X,Y,Z旋转的值

如何实时获取这些值

我曾尝试使用带有手势识别器的相机旋转,但它们没有更新

override func viewDidLoad() {
        super.viewDidLoad()

        sceneView.scene = SCNScene(named: "PKB2");

        sceneView.autoenablesDefaultLighting = true
        sceneView.allowsCameraControl = true

        // add a tap gesture recognizer
        let tapGesture = UITapGestureRecognizer(target: self, action:
            #selector(handleTap(_:)))
        sceneView.addGestureRecognizer(tapGesture)

    }


    func handleTap(_ gestureRecognize: UIGestureRecognizer) {
        // retrieve the SCNView

        let cameraNode = SCNNode()
        cameraNode.camera = SCNCamera()

        print(cameraNode.rotation)

    }
handleTap(:)
中,您正在创建一个新的摄像头。此摄影机的位置和旋转(或包含摄影机的节点的旋转)与用于渲染场景的摄影机的旋转无关。 在视图场景中将
allowsCameraControl
设置为
true
时,它正在创建一个用户可以通过触摸事件控制的新摄像头

您可以使用
SCNSceneRenderer
协议的属性获取包含当前用于渲染视图的摄影机的节点,该协议符合
SCNView

func handleTap(_ gestureRecognize: UIGestureRecognizer) {
    let cameraNode: SCNNode? = sceneView.pointOfView
    print(cameraNode?.rotation ?? "There is no camera set to the view")
} 
handleTap(:)
中,您正在创建一个新的摄像头。此摄影机的位置和旋转(或包含摄影机的节点的旋转)与用于渲染场景的摄影机的旋转无关。 在视图场景中将
allowsCameraControl
设置为
true
时,它正在创建一个用户可以通过触摸事件控制的新摄像头

您可以使用
SCNSceneRenderer
协议的属性获取包含当前用于渲染视图的摄影机的节点,该协议符合
SCNView

func handleTap(_ gestureRecognize: UIGestureRecognizer) {
    let cameraNode: SCNNode? = sceneView.pointOfView
    print(cameraNode?.rotation ?? "There is no camera set to the view")
} 

非常感谢。知道了。当用两个手指移动对象时,是否有方法仅禁用相机的位置?我只想在使用
AllowCameraControl
时启用旋转e缩放。SceneKit团队仅将此属性视为调试工具。iOS 11添加了许多有用的功能来控制摄像头,但目前您必须手动响应事件并更改节点位置。检查帖子作为出发点谢谢。。知道了。当用两个手指移动对象时,是否有方法仅禁用相机的位置?我只想在使用
AllowCameraControl
时启用旋转e缩放。SceneKit团队仅将此属性视为调试工具。iOS 11添加了许多有用的功能来控制摄像头,但目前您必须手动响应事件并更改节点位置。以检查柱为起点