【发布时间】:2015-02-21 00:08:04
【问题描述】:
有没有办法让 SceneKit 的相机缩放但不旋转?以及如何界定用户可以使用相机进行的最大和最小缩放?
【问题讨论】:
标签: objective-c swift scenekit
有没有办法让 SceneKit 的相机缩放但不旋转?以及如何界定用户可以使用相机进行的最大和最小缩放?
【问题讨论】:
标签: objective-c swift scenekit
这取决于您所说的缩放的含义——如果您的意思与“缩放”相机镜头相同,您需要修改SCNCamera 的yFov 和xFov(视野)属性目的。相机保持在完全相同的位置,但会像变焦镜头一样改变其视野。
我看不到如何在缩放时旋转相机 - 我需要了解更多关于您在何处使用相机的背景信息。如果你不触摸相机所连接的SCNNode,你就不可能旋转它。
【讨论】:
您说的是allowsCameraControl 的用户相机移动,对吗?我不认为这真的是一个复杂的用户相机移动方案的基础,更多的是一个简单的调试辅助工具。如果您真的想很好地控制用户如何移动相机,最好创建自己的相机节点并移动它/更改其属性以响应您想要处理的任何用户输入(手势识别器、游戏控制器、等)。
我想您可以通过实现场景渲染器委托willRenderScene 方法来约束自动用户相机。您必须获取当前的pointOfView 节点,检查其位置和相机参数,如果它们超出您想要的任何范围,请更改它们。但是 A) 我不确定这是否可行,并且 B) 这可能不是一个好主意——这有点像弄乱系统控制类的内部视图层次结构。
【讨论】: