我有一个球节点和一个SCNTorus
,我能够将球传递到整个圆环节点。
我添加了碰撞和
我可以使用SCNPhysicsContactDelegate
来检测球穿过圆环时的碰撞,但是
public func physicsWorld(_ world: SCNPhysicsWorld, didEnd contact: SCNPhysicsContact)
被多次呼唤。
public func physicsWorld(_ world: SCNPhysicsWorld, didEnd contact: SCNPhysicsContact) {
// print("Ended collision ")
print(contact.nodeA.name)
print(contact.nodeB.name)
print(world.timeStep)
print("contact.contactPoint : ",contact.contactPoint)
print("contact.contactNormal: ",contact.contactNormal)
}
这里是日志
Optional("ball")
Optional("CoreOfTorus")
0.0166666666666667
contact.contactPoint : SCNVector3(x: -0.46944052, y: 0.732995808, z: -0.102437101)
contact.contactNormal: SCNVector3(x: 0.599724174, y: -0.597007394, z: -0.532835066)
Optional("ball")
Optional("CoreOfTorus")
0.0166666666666667
contact.contactPoint : SCNVector3(x: -0.465598524, y: 0.730407655, z: -0.0885346532)
contact.contactNormal: SCNVector3(x: 0.456919283, y: -0.479364365, z: -0.749289393)
Optional("ball")
Optional("CoreOfTorus")
0.0166666666666667
contact.contactPoint : SCNVector3(x: -0.450406432, y: 0.740066886, z: -0.112132818)
contact.contactNormal: SCNVector3(x: 0.20927684, y: -0.901745498, z: -0.378230304)
Optional("ball")
Optional("CoreOfTorus")
0.0166666666666667
contact.contactPoint : SCNVector3(x: -0.450883865, y: 0.730787694, z: -0.130000055)
contact.contactNormal: SCNVector3(x: 0.318059504, y: -0.937629461, z: 0.140318558)
看到它被称为4次如何解决?