有没有办法可以让相机变焦而不是旋转?

时间:2015-02-21 00:08:05

标签: objective-c swift scenekit

有没有办法让SceneKit的相机变焦但不能旋转?如何划分用户可以使用相机进行的最大和最小变焦?

2 个答案:

答案 0 :(得分:0)

这取决于缩放的含义 - 如果您的意思与'缩放'相机镜头相同,则需要修改yFovxFov(视野)属性SCNCamera对象。相机保持在完全相同的位置,但像变焦镜头一样改变其视野。

我无法看到如何在变焦时旋转相机 - 我需要查看您使用相机的更多背景信息。如果您未触摸相机所连接的SCNNode,则无法旋转它。

答案 1 :(得分:0)

您正在谈论使用allowsCameraControl的用户相机移动,对吗?我不认为这真的意味着成为复杂的用户相机移动方案的基础,更多的是简单的调试辅助。如果您真的想要精确控制用户如何移动相机,最好通过创建自己的相机节点并移动它/更改其属性来响应您想要处理的任何用户输入(手势识别器,游戏控制器,等)。

我想您可以通过实现场景渲染器委托willRenderScene方法来约束自动用户摄像头。您必须获取当前pointOfView节点,检查其位置和摄像机参数,并在它们超出您想要的任何范围时更改它们。但是A)我不确定这会起作用,而且B)它可能不是一个好主意 - 它有点像搞乱系统控制类的内部视图层次结构。