前提・実現したいこと
ARKitで、"pic"という名前がついたnode全てにジェスチャーを加えたい。
(表示されている複数の画像それぞれにジェスチャーを加えたい。)
発生している問題・エラーメッセージ
カメラロールから写真を取得した際、SCNNodeのnodeに"pic"という名前をつけて画面にaddするメソッドと、
enumerateChildNodesで"pic"という名前がついたnodeを検索し、検出されたnodeに対してジェスチャーを加えるメソッドを作りました。
複数の画像を画面にaddすることはでき、最初に読み込んだ画像はジェスチャーできましたが、2回目以降に読み込んだ画像にはジェスチャー機能が一切反応しません。
//ピンチジェスチャーメソッド @objc func pinched(recognizer: UIPinchGestureRecognizer) { if recognizer.state == .changed { self.sceneView.scene.rootNode.enumerateChildNodes { (node, _) in if node.name == "pic" { let pinchScaleX = Float(recognizer.scale) * node.scale.x let pinchScaleY = Float(recognizer.scale) * node.scale.y let pinchScaleZ = Float(recognizer.scale) * node.scale.z node.scale = SCNVector3(pinchScaleX,pinchScaleY,pinchScaleZ) recognizer.scale = 1 } } } }
試したこと
addchildnodeしたnodeの名前をprintで確認しましたが、2枚目以降も全てpicという名前が付いています。
補足情報(FW/ツールのバージョンなど)
ARKit
あなたの回答
tips
プレビュー