ios - 围绕单个轴旋转 SceneKit 圆柱体

标签 ios swift scenekit

我有以下代码可以在 View 中显示 3D 圆柱体。在设备上查看时,手势会在 x 轴(上下滑动手势)和 y 轴(左右滑动)上旋转圆柱体,但 z 轴被锁定。我相信这是 allowsCameraControl 的默认值。

我想做的是锁定 x 轴(我认为),以便只有左右滑动手势有效。我应该看不到圆柱体的顶部或底部。我想在左右滑动时保持默认旋转(即滑动后自然减慢)。

感谢收到的任何帮助!

class MyCollectionViewController: UIViewController {

@IBOutlet weak var scnView: SCNView!

var scnScene: SCNScene!


override func viewDidLoad() {
    super.viewDidLoad()
    sceneSetup()
}


// MARK: Scene
func sceneSetup() {

    scnScene = SCNScene()

    let cylinder = SCNNode(geometry: SCNCylinder(radius: 5.0, height: 20))
    cylinder.geometry?.firstMaterial?.diffuse.contents = UIImage(named: "image1")
    cylinder.geometry?.firstMaterial?.specular.contents = UIColor.white

    scnView.allowsCameraControl = true

    scnScene.rootNode.addChildNode(cylinder)

    scnView.autoenablesDefaultLighting = true

    scnView.scene = scnScene
}

最佳答案

在你的代码中添加以下内容可以锁定垂直

   scnView.defaultCameraController.maximumVerticalAngle = 0.001

关于ios - 围绕单个轴旋转 SceneKit 圆柱体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55171123/

相关文章:

ios - UITableView - BeginUpdates/EndUpdates 动画设置

ios - 如何将 UIWebView 链接到网站

Swift 检查 plist 文件是否存在

swift - 如何从 scenekit 场景中删除特定节点?

ios - 如何在 SceneKit Editor 中使模型的枢轴点居中

ios - 旋转 SCNCamera 节点,观察一个假想球体周围的物体

ios - NSXMLParser 的内存泄漏

ios - 在后台线程中下载和解析数据

ios - 在editActionsForRowAtIndexPath中如何indexpath.row = -1

ios - .cancelAllLocalNotifications 是否清除推送通知?