前提・実現したいこと
ARKitを利用した家具アプリを作りたいのですが
gestureを追加したところ反応はされているのですが
描画が一切変わらず困っています
該当のソースコード
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(doPan)) let rotationGesture = UIRotationGestureRecognizer(target: self, action: #selector(doRotation)) let pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(doPinch)) self.sceneView.addGestureRecognizer(panGesture) self.sceneView.addGestureRecognizer(rotationGesture) self.sceneView.addGestureRecognizer(pinchGesture) @objc private func doPan(sender: UIPanGestureRecognizer) { let point = sender.location(in: self.sceneView) print("point = (point)") let results = sceneView.hitTest(point, types: .existingPlaneUsingExtent) if let hitPoint = results.first { guard let node = sceneView.pointOfView else { return } let vector = SCNVector3( x: hitPoint.worldTransform.columns.3.x, y: hitPoint.worldTransform.columns.3.y, z: hitPoint.worldTransform.columns.3.z ) node.position = vector } } @objc private func doRotation(sender: UIRotationGestureRecognizer) { guard let node = sceneView.pointOfView else { return } print("rotation = (node)") node.runAction(SCNAction.rotateBy(x: 0, y: sender.rotation-3, z: 0, duration: 0.1)) } @objc private func doPinch(gesture: UIPinchGestureRecognizer) { let scale = Float(gesture.scale) guard let node = sceneView.pointOfView else { return } switch gesture.state { case .changed: print("pinch = (scale)") //ノードのスケールを拡大・縮小 if scale > 1.000000000 { let action = SCNAction.scale(by: CGFloat(10), duration: 1) node.runAction(action) } else { let action = SCNAction.scale(by: CGFloat(10), duration: 1) node.runAction(action) } default: NSLog("not action") } } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { guard let touch = touches.first else {return} let touchPos = touch.location(in: sceneView) let hitTest = sceneView.hitTest(touchPos, types: .existingPlaneUsingExtent) if !hitTest.isEmpty { // タップした箇所が取得できていればanchorを追加 let anchor = ARAnchor(transform: hitTest.first!.worldTransform) sceneView.session.add(anchor: anchor) } }
試したこと
CGFloatの値を変更しましたが変わらず
他の方のソースコードを参考にしましたがそちらでも動きませんでした
補足情報(FW/ツールのバージョンなど)
Xcode11.3.1
ARSCNView
あなたの回答
tips
プレビュー