ios - 约束允许CameraControl SCNView 属性只是捏/缩放手势
问题描述
我有一个场景,在某些事件之后,我希望用户能够与相机进行交互,但只是为了pinch/zoom gesture
. 为此,我想启用allowsCameraControl
SCNView 属性。
当您启用allowsCameraControl
所有手势时,其中一些手势使用起来不是很直观,也不容易控制。我还需要让滑动手势可用于与控制相机不同的东西。
有没有办法将相机控制限制在pinch/zoom gesture
? 在文档中我找到了一个SCNCameraController
类,但是它的描述非常稀疏,并且还没有弄清楚如何使用它。
解决方案
allowCameraControl 对于通用的东西有点酷,但同意,稀疏的文档。可能最好实现自己的相机控制。还不错 - 添加一个 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 的问题,这取决于你想要它的复杂程度。希望有帮助!
推荐阅读
- angular - 如何使用 Sass & bootstrap 4.1.3 在 Angular5 中添加媒体查询
- jquery - 从活动子元素中删除类
- javascript - 选择具有可变数据属性的元素,但是有些带有破折号
- excel - 公式的基于值的选择结束
- php - 我注意到变量“user_id”可能会在未来版本的 php 中引发错误
- javascript - 禁用 Chrome 69 自动填充
- php - Woocommerce 分页仅适用于商店主页
- r - R Shiny 在每一步将日志写入 ui
- docker - Kubernetes 暴露多个 pod
- asp.net - 我无法将外键保存到一对多表 asp.net 但可以插入数据 asp.net mvc 5