タップした座標をとってそれを3次元に直し、オブジェクトをその座標で表示したいです。
以下のコードでタップした座標にオブジェクトを置こうとしているのですが、変数resultsがnilになってしまいます。
原因分かる方いらしたら教えていただきたいです。
swift
1@IBAction func tapped(_ sender: UITapGestureRecognizer) { 2 let tapPoint = sender.location(in: sceneView) 3 let results = sceneView.hitTest(tapPoint, types: .existingPlaneUsingExtent) 4 print("tap") // 呼ばれる 5 if let hitPoint = results.first { 6 let point = SCNVector3(hitPoint.worldTransform.columns.3.x, hitPoint.worldTransform.columns.3.y, hitPoint.worldTransform.columns.3.z) 7 let sphereNode = SCNNode(geometry: SCNSphere(radius: 0.02)) 8 sphereNode.position = point 9 self.sceneView.scene.rootNode.addChildNode(sphereNode) 10 sphereNode.geometry?.firstMaterial?.diffuse.contents = UIColor.red 11 print("object") // 呼ばれない 12 } 13 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/01 02:35