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

问题描述 投票:0回答:1

我需要检查一下用户是否向左或向右移动他的相机,在 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")
        }

    }

我正在使用 ARSCN查看 这段代码有时能正常工作,有时却不能。左或右 我是新来的 ARkti......所以请帮助我:)

ios swift arkit swift5 swift4.1
1个回答
1
投票

老实说,我以前没有尝试过ARKit,但我看到,当你试图移动手机时,这个委托人就会被触发,所以试着检查一下。UIDevice.current.orientation 在它的旁边。我不知道这对你有没有帮助。

 switch UIDevice.current.orientation {
    case .portrait:
        break
    case .landscapeLeft:
        break
    case .portraitUpsideDown:
        break
    case .landscapeRight:
        break
    case .faceDown:
        break
    case .faceUp:
        break
    }
© www.soinside.com 2019 - 2024. All rights reserved.