当使用myCameraNode.camera.usesOrthographicProjection = YES;
的相机时,据我所知,你不能像平常那样使用myScene.allowsCameraControl = YES;
给出的默认控件进行缩放 - 这是我能分辨的唯一缩放方式是通过更改myCameraNode.scale = (SCNVector3*)...
有没有办法以某种方式将滚轮绑定到此缩放参数,同时保留标准相机控件以进行旋转/平移?或者以其他方式“修复”默认的相机控件?
编辑:我想我误解了相机的工作原理。双指缩放手势 仍然适用于正交投影,但似乎它只允许我缩小而不让我进一步放大。我怀疑它可能与myCameraNode.scale
有关,但是如果我没有设置那个参数,我的场景中的对象很大,我只看到它的一小部分(和scale
越大我的对象越小越好。
答案 0 :(得分:1)
SCNView
上的内置摄像头控件非常基本,可能最适合用于调试。对于制作应用程序,最好自己控制相机,尤其是在使用正交投影时。设置您自己的事件处理来控制摄像机的orthographicScale
属性,然后进行设置。
跟进评论:
scale
上的SCNNode
属性控制节点内容相对于其父节点的大小 - 这是一个坐标空间转换,就像rotation
和position
一样。它不适合实现相机变焦。在透视投影中,您可以使用相机的xFov
和/或yFov
属性进行缩放(我认为这是内置相机控件的功能)。 API没有定义控件对正交相机所做的操作,所以你观察到的关于它的行为的任何内容都可能是未定义的,可能是一个错误......你可能无法依赖它保持这种状态。
如果还有更多内置相机控件需要处理,我建议filing an enhancement request。