我需要检查用户是否将他的相机向左或向右移动
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/