Ios 对象在ARKit中的场景中不断穿过地板

Ios 对象在ARKit中的场景中不断穿过地板,ios,swift,scenekit,ios11,arkit,Ios,Swift,Scenekit,Ios11,Arkit,我正在尝试使用ARKit for iOS 11制作一个简单的抛球游戏,我有一个场景可以保持三个节点(灯光、地板,它的物理身体类型是静态的,垃圾桶或其他东西可以保持抛球在里面) 在探测到飞机并将垃圾桶放在ARPlane上之后,每当用户点击按钮投掷球时,就会调用一种方法。球的物理实体类型是动态的,正在使用SCNNode在视图控制器文件(不是在.scn文件中创建)中创建和投掷,并使用physicsBody应用力 let ball = SCNSphere(radius: 0.025) let ballN

我正在尝试使用ARKit for iOS 11制作一个简单的抛球游戏,我有一个场景可以保持三个节点(灯光、地板,它的物理身体类型是静态的,垃圾桶或其他东西可以保持抛球在里面)

在探测到飞机并将垃圾桶放在ARPlane上之后,每当用户点击按钮投掷球时,就会调用一种方法。球的物理实体类型是动态的,正在使用SCNNode在视图控制器文件(不是在.scn文件中创建)中创建和投掷,并使用physicsBody应用力

let ball = SCNSphere(radius: 0.025)
let ballNode = SCNNode(geometry: ball)
let forceDirection = SCNVector3Make(0, 0, -2)
let physicsBody = SCNPhysicsBody(type: .dynamic, shape: SCNPhysicsShape(geometry: ball, options: nil))
physicsBody.isAffectedByGravity = true
physicsBody.allowsResting = true
physicsBody.mass = 1
physicsBody.restitution = 1
physicsBody.friction = 0
physicsBody.applyForce(forceDirection, asImpulse: true)
ballNode.physicsBody = physicsBody
sceneView.scene.rootNode.addChildNode(ballNode)
.scn文件中的节点

场景中地板的物理实体属性:

使用力投掷球并使用sceneView将球添加到场景中,一切都很好,但问题是球一直通过垃圾桶和地板本身,即使它们是运动和/或静态的。


**更新:在为球和平面(地板)设置碰撞位掩码后,现在的问题是,即使我减少了垃圾的归还量,球也不会留在垃圾桶内**

将碰撞位掩码设置为球和地板。你能解释更多吗?你找到解决方案了吗?如果是的话,你能发布它吗?