ios - 将 allowsCameraControl SCNView 属性限制为仅捏合/缩放手势

标签 ios swift scenekit gesture scncamera

我有一个场景,在某些事件发生后,我希望用户能够与相机进行交互,但仅限于捏合/缩放手势。为此,我想启用 allowsCameraControl SCNView 属性。

当您启用 allowsCameraControl 时,所有手势都会启用,其中一些手势使用起来不是很直观也不容易控制。我还需要将滑动手势用于不同于控制相机的操作。

有没有办法将相机控制限制为仅捏合/缩放手势?在文档中我找到了一个 SCNCameraController 类,但是它的描述非常稀疏,而且还没有弄清楚如何使用它。

最佳答案

allowsCameraControl 对于通用的东西来说有点酷,但同意,稀疏的文档。可能最好实现自己的相机控制。这还不错——添加一个 cameraEye 和 cameraFocus 节点,然后使用 SCNLookAtConstraint 进行设置。像这样:

func setView()
{
 cameraEye.constraints = []
 cameraEye.position = SCNVector3(x: 0, y: 10, z: 12)
 cameraFocus.position = SCNVector3Make(0, 0, 0)
 let vConstraint = SCNLookAtConstraint(target: cameraFocus)
 vConstraint.isGimbalLockEnabled = true
 cameraEye.constraints = [vConstraint]
}

从那里开始 - 放大/缩小只是更改 cameraFocus.position 的问题,具体取决于您想要的复杂程度。希望对您有所帮助!

关于ios - 将 allowsCameraControl SCNView 属性限制为仅捏合/缩放手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50119574/

相关文章:

ios - 将分数添加到已保存的分数中

ios - 尝试将 facebook 添加到应用程序并进行解析和应用程序崩溃

ios - 应用程序如何确定它是否因 Voip 推送而从终止状态启动?

ios - 无法在 HOME.VC 文本标签中显示 JSON 结果

ios - 使SCNText对象始终面向前方

ios - Apple Metal 中的 PBR 渲染

iphone - 在iPhone中使用带有userid参数的base64 haxcode将图像上传到服务器

swift - UIProgressView 在 iOS 13 上没有动画进度

ios - 字段 `lyrics` 对于 swift 中当前播放歌曲的 MPMediaItem 是空的,ios 12+

swift - 通过旋转获取 SCNNode 的边界体积