Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在ARkti中检查摄像机的左右旋转_Ios_Swift_Arkit_Swift5_Swift4.1 - Fatal编程技术网

Ios 如何在ARkti中检查摄像机的左右旋转

Ios 如何在ARkti中检查摄像机的左右旋转,ios,swift,arkit,swift5,swift4.1,Ios,Swift,Arkit,Swift5,Swift4.1,我需要检查用户是否将相机向左或向右移动 ARkit。 这是我的密码 func renderer(_ renderer: SCNSceneRenderer, willRenderScene scene: SCNScene, atTime time: TimeInterval) { //get camera position guard let pointOfView = mainScene.pointOfView else {return} le

我需要检查用户是否将相机向左或向右移动 ARkit。 这是我的密码

 func renderer(_ renderer: SCNSceneRenderer, willRenderScene scene: SCNScene, atTime time: TimeInterval) {

        //get camera position
        guard let pointOfView = mainScene.pointOfView else {return}
        let transform = pointOfView.transform

        let orientation = SCNVector3(-transform.m31,-transform.m32,-transform.m33)
        let location = SCNVector3(transform.m41,transform.m42,transform.m43)
        currentPositionOfCamera = orientation + location
        print(currentPositionOfCamera)
        if currentPositionOfCamera.x <= -1.0  {
            print("left")
            //addBox(x: currentPositionOfCamera.x, y: currentPositionOfCamera.y, z: -5.0)

            if(!isimageAdd && !isRightSide){
                         DispatchQueue.main.async {
                             self.isimageAdd = true
                             self.isRightSide = true
                            self.addBox(x: -6.1, y: self.currentPositionOfCamera.y, z: -1.5)
                         }


                     }

        }else if currentPositionOfCamera.x > 1.0 {
             print("right")
             //addBox(x: currentPositionOfCamera.x, y: currentPositionOfCamera.y, z: 5.0)

            if(!isimageAdd && isRightSide){
                         DispatchQueue.main.async {
                             self.isimageAdd = true
                            self.isRightSide = false
                             self.addBox(x: 6.1, y: self.currentPositionOfCamera.y, z: -1.5)
                         }


                     }

        }
        else {
             print("front")
        }

    }
func渲染器(渲染器:SCNSceneRenderer,willRenderScene场景:SCNScene,时间:TimeInterval){
//获取摄像机位置
guard let pointOfView=mainScene.pointOfView else{return}
让transform=pointOfView.transform
让方向=SCConvert3(-transform.m31,-transform.m32,-transform.m33)
让location=scinvector3(transform.m41、transform.m42、transform.m43)
摄像机的当前位置=方向+位置
打印(照相机的当前位置)
如果当前位置为0.x 1.0{
打印(“右”)
//地址框(x:currentPositionOfCamera.x,y:currentPositionOfCamera.y,z:5.0)
如果(!isimageAdd&&isRightSide){
DispatchQueue.main.async{
self.isimageAdd=true
self.isRightSide=false
自添加框(x:6.1,y:AMERA.y的自当前位置,z:-1.5)
}
}
}
否则{
打印(“正面”)
}
}

我正在使用ARSCNView代理查找相机时刻。这段代码有时可以正常工作,有时不行。是否有准确的方法找到相机左右移动。我在阿尔克蒂是新来的。所以请帮帮我:)

老实说,我以前没试过。但正如我所看到的,每当你试图移动手机时,这个代理就会被触发,所以请尝试在它旁边检查
ui设备.current.orientation
。我不确定这对你是否有帮助

 switch UIDevice.current.orientation {
    case .portrait:
        break
    case .landscapeLeft:
        break
    case .portraitUpsideDown:
        break
    case .landscapeRight:
        break
    case .faceDown:
        break
    case .faceUp:
        break
    }