Scenekit detecting User tapped object

♀尐吖头ヾ 提交于 2019-12-30 11:47:47

问题


I recently started using scenekit for scenekit in iOS 8. I am facing difficulty in detecting whether the user has tapped or pressed on the object. Is there any way to do that?


回答1:


See the documentation for the hitTest method. Call that from wherever you're handling touch events to get a list of 3D scene objects/locations "under" a 2D screen point.




回答2:


An easy way to get sample code that shows the hitTest in action is to create a sample app using the Game template in XCode6. Create a new project, select the "Game" template.

The hitTest code should be there in the implementation of:

- (void) handleTap:(UIGestureRecognizer*)gestureRecognize



回答3:


Add a tap gesture to the object and check whether it is a SCNNode()

     @objc func tapGetsureRec(sender: UIPanGestureRecognizer? = nil){
            let location: CGPoint = (sender?.location(in: self.view))!
            let hits = self.sceneKitView.hitTest(location, options: nil)
            if let tappedNode : SCNNode = hits.first?.node {
                ...
            }
     }


来源:https://stackoverflow.com/questions/26444524/scenekit-detecting-user-tapped-object

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!