Ios 如何在ARkti中检查摄像机的左右旋转
我需要检查用户是否将相机向左或向右移动 ARkit。 这是我的密码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
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
}