我有两个运动学且没有碰撞的SCNNode,我设置了contactDelegate并且物理主体正确缩放。我可以看到,当我调试应用程序时,对象和物理主体会发生冲突。
其中一个主体是在场景中移动的父节点的子节点,而另一个主体是不移动的节点的physicsBody
let aShape = SCNBox(width: 1, height: 1, length: 15, chamferRadius: 0)
let aNode = SCNNode(geometry: aShape)
aNode.position = SCNVector3(0,2,10)
aNode.physicsBody = SCNPhysicsBody(type: .kinematic, shape: SCNPhysicsShape(geometry: aShape, options: [SCNPhysicsShape.Option.scale : 0.02]))
aNode.physicsBody?.isAffectedByGravity = false
aNode.physicsBody?.allowsResting = false
pNode?.addChildNode(aNode)
aNode.physicsBody?.categoryBitMask = 4
aNode.physicsBody?.contactTestBitMask = 8
aNode.physicsBody?.collisionBitMask = 8
答案 0 :(得分:0)
在阅读(SceneKit: How to detect contact without collision)之后,我将两个节点设置为静态物理体并且它可以工作:)