2
私はiPhoneのためのテスト3Dゲームを作成しようとしていますが、私は物理学に悩まされています。車と救急車がお互いに接触すると、車は消えませんか?以前はSpriteKitを使っていましたが、私はPhysicsWorld 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()
}
}
私が誰かが私を助けることができると思います!ありがとう!
編集:私は自分にシーンのcontactDelegateを設定する方法を見つけた:
同じ問題を抱えているすべての人のためにscene.physicsWorld.contactDelegate = self