2
我想爲iPhone創建一個測試3D遊戲,但我堅持物理。當汽車和救護車相互接觸時,汽車不會消失?我之前和SpriteKit一起工作過,並且我知道必須將PhysicsWorld ContactDelegate設置爲self,但我不知道如何在SceneKit中執行此操作,也許這是問題所在?SceneKit物理聯繫人
代碼:
ambulance.physicsBody?.categoryBitMask = PhysicsCategory.ambulance
ambulance.physicsBody?.contactTestBitMask = PhysicsCategory.car
car.physicsBody?.categoryBitMask = PhysicsCategory.car
func physicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact) {
let firstNode = contact.nodeA
let secondNode = contact.nodeB
if(firstNode.physicsBody?.categoryBitMask == PhysicsCategory.ambulance && secondNode.physicsBody?.categoryBitMask == PhysicsCategory.car ||
firstNode.physicsBody?.categoryBitMask == PhysicsCategory.car && secondNode.physicsBody?.categoryBitMask == PhysicsCategory.ambulance){
firstNode.physicsBody?.categoryBitMask = PhysicsCategory.ambulance
secondNode.physicsBody?.categoryBitMask = PhysicsCategory.car
secondNode.removeFromParentNode()
}
}
我希望有人能幫幫我!謝謝!
編輯:我已經找到了如何到現場的contactDelegate設置爲自:
scene.physicsWorld.contactDelegate = self