ios - 如何在 ARkti 中检查相机向左或向右旋转

标签 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}
        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查看委托(delegate)寻找相机时刻。这段代码有时可以正常工作,有时不能。有没有准确的方法找到相机运动左或右 边。我是 的新成员阿克提 .所以请帮助我:)

最佳答案

老实说,我之前没有尝试过 ARKit。但正如我所见,每当您尝试移动手机时,都会触发此委托(delegate),因此请尝试检查 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
    }

关于ios - 如何在 ARkti 中检查相机向左或向右旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61542553/

相关文章:

ios - 快速转换使用 uibezierpath 创建的线

ios - 无法为某些情况创建圆柱体 - Arkit

ios - 检测在 arkit 上点击了哪个平面

ios - 重置 AVPlayer 和 ARImageTracking

ios - 如何根据 Childviewcontroller(UIViewController 的不同大小)高度更改容器 View (父 View )的高度?

swift - 在左耳机或右耳机中播放特定频率的音调

ios - Apple Mach-O 链接器错误,我不知道为什么

ios - Xcode & Swift - 检测 UIScrollView 内部 UIView 的用户触摸

ios - Swift 4.2 使用联系人框架通过搜索栏搜索联系人

ios - 如何在iCloud中对UIDocument进行增量写入?