SceneKit 两个节点没有碰撞
SceneKit two nodes are not colliding
我有两个 SCNNodes 是运动学的并且没有碰撞,我已经设置了 contactDelegate 并且物理体被正确缩放。当我调试应用程序时,我可以看到物体和物理体正在碰撞。
其中一个物体是在场景中移动的父节点的子节点,而另一个物体是不移动的节点的物理体
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
阅读(SceneKit: How to detect contact without collision)后,我将两个节点都设置为具有静态物理体并且有效:)
我有两个 SCNNodes 是运动学的并且没有碰撞,我已经设置了 contactDelegate 并且物理体被正确缩放。当我调试应用程序时,我可以看到物体和物理体正在碰撞。
其中一个物体是在场景中移动的父节点的子节点,而另一个物体是不移动的节点的物理体
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
阅读(SceneKit: How to detect contact without collision)后,我将两个节点都设置为具有静态物理体并且有效:)