【发布时间】:2020-01-10 12:49:52
【问题描述】:
我有一个 SCNCamera 在 iOS 上的 3D SceneKit 视图中工作。
当我改变屏幕的方向时,为了保持世界对象的大小和相对位置相同,我需要改变 SCNCamera 的 FoV。
但是,我无法为这种变化设置动画,因此当 FoV 从一种设置更改为另一种设置时,世界会“闪烁”或“脉冲”。
有没有一种方法可以平滑地做到这一点,以使 FoV 的变化不会太突然而导致世界上的物体“脉动”?
当设备改变方向时,执行以下代码:
if UIDevice.current.orientation == .landscapeLeft || UIDevice.current.orientation == .landscapeRight
{
self.cameraNode?.camera?.fieldOfView = 38
}
else
{
self.cameraNode?.camera?.fieldOfView = 50
}
我尝试将 FoV 更改包装在 UIView 动画块中,但没有奏效。
我尝试在线程上延迟运行它,但这仍然会导致 FoV 发生变化时出现视觉“脉冲”。
有什么方法可以让这个过渡顺利吗?
【问题讨论】:
标签: swift animation orientation scenekit scncamera