1

i need tho check that user move his camera left or right side in ARkit. this is my code

 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")
        }

    }

i am useing ARSCNView delegate to find the camera moment. this code work fine sometime sometime not. is there any accurate way find camera movment left or right side. i am new in ARkti. so please help me :)

balkaran singh
  • 2,754
  • 1
  • 17
  • 32

1 Answers1

1

Honestly, I have not tried ARKit before. but as I see, This delegate get triggered whenever you tried to move your phone, so try to check on UIDevice.current.orientation in side it. I am not sure this will help you or not.

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