Search code examples
iosswifthittestscenekit

Tap / Select Node in SceneKit (Swift)


I'm new to SceneKit and 3D spaces in iOS. I'm currently working on a simple game that shows a cube of 28 segments ("mini cubes" if you want).

I want to move the mini cubes by tapping them, but I can't get my head around how to select specific nodes (childnodes of the big cube).

Can anybody help me or post a link to SceneKit tutorials for dummies? I've been looking for days now, and haven't found what I'm looking for.

Cheers


Solution

  • You can hit test the scene view (for example from the location of a tap gesture recognizer), which will give you a list of hit test results. From each result you can get the node (and other information):

    let location: CGPoint = // for example from a tap gesture recognizer
    let hits = self.sceneView.hitTest(location, options: nil)
    if let tappedNode = hits?.first?.node {
        // do something with the tapped node ...
    }