Camera 如何防止SceneKit在设备旋转时改变摄像机FOV/位置?

Camera 如何防止SceneKit在设备旋转时改变摄像机FOV/位置?,camera,rotation,scenekit,fieldofview,Camera,Rotation,Scenekit,Fieldofview,由于没有代码来处理旋转或改变任何东西,当我的设备从纵向旋转到横向时,加载的模型在SceneKit视图中居中会改变透视、缩放和拉伸 ViewController有一个SceneKit视图,该视图固定在父视图的顶部、底部和侧面。即使在旋转时,这也被确认为粘附 所需设备为iPhone SE至12.9版iPad Pro 在iPad上,这一视觉问题大大减少,但在iPhone上,失真、缩放和透视变化都非常明显 我不知道如何嵌入照片,否则我会展示给你看,但如果模型是正面和中间的,在纵向iPhone上是1英寸乘

由于没有代码来处理旋转或改变任何东西,当我的设备从纵向旋转到横向时,加载的模型在SceneKit视图中居中会改变透视、缩放和拉伸

ViewController有一个SceneKit视图,该视图固定在父视图的顶部、底部和侧面。即使在旋转时,这也被确认为粘附

所需设备为iPhone SE至12.9版iPad Pro

在iPad上,这一视觉问题大大减少,但在iPhone上,失真、缩放和透视变化都非常明显

我不知道如何嵌入照片,否则我会展示给你看,但如果模型是正面和中间的,在纵向iPhone上是1英寸乘1英寸的正方形,当你旋转到横向时,它会变成0.25英寸垂直,0.5英寸水平

下面是设置场景的代码

let scene=SCNScene()
let shipScene=SCNScene(命名为:“merchant.scn”)
guard let shipNode=shipScene?.rootNode.childNode(名称为:“商家”,递归:true)
其他的
{
fatalError(“未找到ShipModel!”)
}
self.shipNode=shipNode
self.shipNode?.position=SCInvector3(x:0,y:0,z:0)
scene.rootNode.addChildNode(self.shipNode!)
让lightNode=SCNNode()
lightNode.light=SCNLight()
lightNode.light?类型=.omni
lightNode.position=SCInvector3(x:0,y:2,z:10)
让cameraNode=SCNNode()
self.cameraNode=cameraNode
self.cameraNode?.camera=SCNCamera()
self.cameraNode?.position=scinvector3(x:0,y:0,z:8)
self.cameraNode?.addChildNode(lightNode)
scene.rootNode.addChildNode(self.cameraNode!)
self.sceneKitView?.scene=场景
self.sceneKitView?.showsStatistics=false
self.sceneKitView?.backgroundColor=#colorLiteral(红色:0.0882207342,绿色:0.0882207342,蓝色:0.0882207342,alpha:1)
self.sceneKitView?.allowsCameraControl=false
在类中没有其他事情发生,但拉伸、缩小和透视变化发生在设备旋转上

它们在iPhone上更差,但在iPad上大大减少。

将旋转时的更改为横向。

将旋转时的更改为横向