1

It seems you just can't add a physics body in code.

Not much more can be said than this, has anyone found this issue?

Some example code ...

class SomeSceneView:  SCNView {
    public var box: SCNNode!
    
    .. 

    var physBody = SCNPhysicsBody()
    
    private func bringup() {
        box = scene?.rootNode.childNode(withName: "box", recursively: true)
        
        physBody.type = .dynamic
        physBody.isAffectedByGravity = false
        physBody.friction = 0

        box.physicsBody = physBody

        rendersContinuously = true
        play(nil)
    }
}

Any experience with this?

Fattie
  • 27,874
  • 70
  • 431
  • 719

1 Answers1

3

You need also to file a SCNPhysicsShape.

Try something like this:

func makeNode() {
    let node = SCNNode(geometry: SCNSphere(radius: 1.0))
    ...
    node.physicsBody = SCNPhysicsBody(type: .dynamic, shape: SCNPhysicsShape(geometry: node.geometry, options: nil))
    ...
    scene.rootnode.addChildNode(node)
}
ZAY
  • 3,882
  • 2
  • 13
  • 21