Я пытаюсь создать тестовую 3D-игру для iPhone, но я застрял в физике. Когда автомобиль и скорая помощь контактируют друг с другом, автомобиль не исчезает? Я работал с SpriteKit раньше, и я знаю, что мне нужно было установить физический контакт ContactDelegate, но я не знаю, как это сделать в SceneKit, может быть, это проблема?SceneKit Physics Контакт
Код:
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()
}
}
Я надеюсь, что кто-то может мне помочь! Благодаря!
EDIT: Я нашел, как установить contactDelegate сцены к себе:
scene.physicsWorld.contactDelegate = self